Ведь сегодня, если установить не слишком дорогую плату для ввода и немного поколдовать, такое можно получить на любом, даже не очень мощном IBM-совместимом ПК. Но... передвинулся курсор мыши, и вдруг оказалось, что мы видим не просто изображение комнаты, а ее отражение в воде, по которой легко побежали круги от первой упавшей капли дождя, от второй, а потом еще и еще. Второе передвижение — и водная гладь превратилась в «изображение на резине», послушно растягивающееся и сжимающееся вслед за курсором, мертвой хваткой «вцепившимся» в одну его точку.

Подобные эффекты выглядели бы настоящим чудом, если бы воспроизводились на обычном Intel-компьютере, но в данном случае мы смотрели на экран рабочей станции SGI Workstation 320, а для нее подобные фокусы были делом обычным, поскольку с этой целью она, в общем-то, и создавалась. Хотя, если рассматривать это с другой точки зрения, кое-что все же может вызвать удивление — она оснащена теми же процессорами Pentium, которые стоят сегодня в домашних ПК. Так в чем же секрет: «мотор» всюду один и тот же, а скорости разительно различаются? Чтобы разгадать его, придется погрузиться в мир архитектурных изысков и, как все большое, начать рассматривать издалека.

Источник «кислорода»

Открытая архитектура, основанная на наличии общей шины и разъемов расширения для подключения разнообразных дополнительных устройств, была воплощена еще в первом ПК (им обычно считается набор Altair для самостоятельной сборки, выпущенный фирмой MITS). Начав свое победное шествие в 1975 г., она была в августе 1981 г. доведена фирмой IBM до своего логического завершения, ознаменовавшегося выпуском первого IBM PC. Грандиозный успех этой архитектуры на время затмил все созданное до ее появления. А о том, чего достигли в ходе более чем 30-летнего эволюционного процесса развития цифровых ЭВМ, казалось, забыли.

В IBM была создана группа, состоящая из 12 разработчиков, которые не погнались за экстремальными характеристиками, а изучили состояние рынка и развили идею общей открытой шины (она была использована и в машинах Apple, имевших в 1976—1977 гг. большой успех), дополнив ее возможностью максимально широкой кооперации производителей комплектующих. Специалисты IBM сумели чутко уловить все тенденции рынка. По сути, они просто создали новый сектор промышленности, куда и устремились производители аппаратного и программного обеспечения. Количество ПО для персональных компьютеров стало стремительно расти, и началось победное шествие гениальной в своей посредственности архитектуры.

Интересно, что индустрия, начавшаяся с разработки изделия, характеристики которого были полностью определены потребностями рынка, в настоящий момент полностью управляет ими, подчинив нуждам технологии. Но это уже совсем другая тема.

Недостатки как продолжение достоинств

Конкуренция между массой производителей подсистем дала главную составляющую успеха — доступность. Это позволило закрыть глаза на многие недостатки архитектуры. Ведь мы знаем, что только процессор и память находятся на одной системной шине, а все остальные устройства общаются с ними посредством общей магистрали обмена данными (рис. 1). Но законы природы неумолимы: за все надо платить. За универсальность — ухудшением характеристик. Шина — это одноколейная дорога, которой могут пользоваться все, кому не лень. Она всегда была, да и сейчас остается одним из узких мест процесса обработки информации. Кроме того, почти каждое внешнее устройство здесь имеет свою буферную память, которая не может быть востребована ни процессором, ни другими подсистемами. Это приводит к непроизводительному копированию больших объемов информации и нерациональному использованию аппаратных ресурсов. Каждый, кто программировал вывод графических изображений на экран ПК, знает, что основное время тратится не на вычисления, а на пересылку данных в графическую память. Но при создании IBM PC об этом почти не задумывались. Компьютеры имели исключительно «текстовый» интерфейс, и никто не мог себе даже представить, что когда-нибудь придется обрабатывать такие огромные объемы графической информации, какие сейчас, например, требуются для вывода на экран «живого» видео.

Более того, строго говоря, процессор в ПК никогда не обрабатывал данные сразу по поступлении, поскольку всегда имел дело с их копией (мгновенным снимком), оригинал которого поступил в компьютер несколько ранее. Если эта задержка лично вас устраивала (а в реальности к ней прибавлялось еще время реакции ОС), то можно было назвать эту систему работающей в реальном времени, если нет — увы.

Разработчикам IBM-совместимых ПК не позавидуешь. На них всегда накладывались жесточайшие ограничения. Они должны были, повышая производительность, обеспечивать двоичную совместимость с предыдущими моделями и не слишком сильно увеличивать цену, а спустя какое-то время после выпуска даже уменьшать. К тому же строгое соблюдение обета совместимости в этой архитектуре вызывало дополнительные трудности. Если бы программы в процессе выполнения имели дело только с аппаратурой процессора! Но ведь они всегда вынуждены были общаться с BIOS, а если требовалось повысить быстродействие, то и напрямую с подсистемами. Таким образом, если бы разработчики хоть что-нибудь тронули в этой архитектуре, то даже перекомпиляция всех исходных текстов под новую систему команд не спасла бы положение. Все пришлось бы переписывать заново.

Создателям суперЭВМ в этом смысле «повезло». Ради роста производительности они могли и жертвовать двоичной совместимостью, и не слишком заботиться о стоимости. А работая на массовый рынок, существенно повышать цену было нельзя и потому приходилось ждать значительного удешевления электронных компонентов, особенно микросхем памяти.

И вот, когда на горизонте замаячила перспектива появления дешевых микросхем синхронной динамической памяти — SDRAM, стало понятно, как без чрезмерных затрат дать необходимый «кислород» процессорам. Это было успешно продемонстрировано в архитектуре компьютера О2 фирмы SGI. Именно там, используя так называемую унифицированную, объединенную память (UMA — Unified Memory Architecture), удалось добиться компромисса между стоимостью, набором возможностей и производительностью.

Сам «кислород»

Общее поле памяти составили из четырех банков модулей SDRAM, объединенных мультиплексором. Все подсистемы получили возможность «общаться» с полем памяти через высокоскоростные порты со скоростью до 2,1 Гбайт/с (рис. 2).

Рис. 2. Архитектура О2

Теперь подсистемы могли использовать общее поле памяти в качестве буфера, устранив отдельные временные хранилища «как класс». Огромное число операций по пересылке данных от подсистем и обратно свелось к выполняемому за считанное число тактов изменению значения указателя на массив с этой информацией, а сама она при этом никуда не передвигалась. Когда необходимость в том или ином временном хранилище отпадала, память отдавалась под другие нужды. Процессор всегда мог оперировать данными, только что поступившими в память от подсистем, не ожидая, как в ПК, их пересылки.

Немаловажно и то, что стали ненужными дорогостоящие микросхемы памяти, которые устанавливались на графических платах. Согласитесь, что типичные для теперешних видеоподсистем объемы буферной памяти в 16 или даже 32 Мбайт на дороге не валяются. Так была создана рабочая станция, в которой процессор мог развивать максимальную производительность, не снижая оборотов из-за недостатка «кислорода» данных.

Не нужны никакие тесты, чтобы стало понятно следующее: эффективность системы отображения графической информации в архитектуре О2 многократно выше, чем у применяемой в обычных ПК. Но кроме того, и сами процессоры, используемые в системе (R10000 и R5000 фирмы MIPS), могут не только параллельно выполнять операции с целыми числами и операции с числами с плавающей запятой, но и помогать в построении геометрических примитивов. Для этого в R5000 предусмотрен ряд специальных команд, среди которых есть, например, инструкции для пересчета освещенности объектов и различных трансформаций изображения, значительно ускоряющие построение трехмерных сцен.

Чтобы дать законченное представление о «кислороде», нужно упомянуть и о подсистемах, предназначенных для ускорения обслуживания аудио- и видеопотоков. Это блок обработки и сжатия изображений, компрессирующий в реальном времени видеоинформацию в формат JPEG. При поддержке процессора ввода-вывода он дает возможность обрабатывать сразу два видеосигнала, а наличие специального вычислителя для рендеринга позволяет настолько разгрузить центральный процессор, что можно, например, использовать один из видеосигналов в качестве «живой» текстуры поверхностей при трехмерном моделировании.

После подачи газа

Появление и успех относительно дешевых компьютеров (сравните 6 тыс. долл. с суммами, превышающими 100 тыс. за ЭВМ, на которых создавались первые фильмы с компьютерной графикой) открыло новый рынок доступных рабочих станций для обработки видеоданных. Логичным продолжением этого процесса стало создание SGI-установок на базе более массовых процессоров х86, хотя побудительные мотивы того, что она изменила своим технологическим приоритетам, следует искать скорее в последствиях быстрого вторжения ПК в области, в которых она ранее безраздельно господствовала. (Ведь известно, что начиная с самого первого компьютера, созданного в начале 80-х, все они использовали RISC-процессоры фирмы MIPS Computers. Это не случайно — профессор Стенфордского университета Д. Кларк, основавший в 1982 г. Silicon Graphics, был одним из идеологов разработки процессоров MIPS, а позже производство этих процессоров и вовсе перешло под его крыло.)

Объявленное Intel в 1996 г. наступление эры «визуального компьютинга» на обычных ПК, видимо, и подвигло SGI на лицензирование у нее ряда архитектурных решений. (Помните совет древних «бить врага его же оружием»?) В результате появилась интегрированная архитектура для визуальных вычислений (Integrated Visual Computing, IVC), которая была реализована в семействе рабочих станций SGI Workstation 320 (рис. 3) и SGI Workstation 540 (рис. 4). (Впечатления от работы одной из представительниц этого семейства вынесены в преамбулу статьи.) Эта архитектура — прямой потомок «кислорода», в ней использована та же идея объединенной памяти UMA.

«Кислород» в кобальтовой раме

Для обеспечения общего доступа подсистем к памяти на основе полузаказных микросхем был разработан новый системный набор из трех ИС под общим названием Cobalt.

В первом кристалле, по количеству транзисторов не уступающем Pentium II и давшем название всему набору, располагается одно из самых важных устройств Cobalt Memory Controller, которое организует и синхронизирует работу многочисленных подсистем компьютера и ЦП с общим полем памяти. Оно, в свою очередь, управляется ОС и драйверами OpenGL. Обычные микросхемы динамической памяти с временем доступа 50 нс используются в ОЗУ. Для оптимизации производительности они конструктивно объединены по шесть на одном модуле аналогично тому, как это делается в блокнотных компьютерах.

Есть еще два кристалла: Arsenic и Litium. Первый отвечает за вывод на экран, а второй обрабатывает входящие и выходящие данные.

Более пристальное рассмотрение начнем с последнего. Его способность получать и отдавать информацию вызывает уважение. Например, можно одновременно вводить два несжатых потока видеоданных в форматах PAL или NTSC и столько же выводить. Достигается такая скорость тем, что все основные пути информации связаны индивидуальной магистралью передачи с шиной или шинами PCI (их в SGI Workstation две) и практически не зависят друг от друга. Здесь также аппаратно реализован алгоритм сжатия видеоданных (возможна и программная компрессия).

В управляющей выводом ИС реализованы разнообразные возможности. Так, можно использовать аналоговый дисплей с традиционным VGA-интерфейсом (в старшей модели 540 имеется и цифровой выход для специально разработанного плоскопанельного монитора) или порт IEEE 1394 с пропускной способностью 400 Мбайт/с. Предусмотрены один канал Ultra DMA/33 для подключения CD- или DVD-приводов и традиционный интерфейс для дисковода на гибких дисках. Имеется все необходимое и для ввода, и для оцифровки сигнала с микрофона и стереолинии и вывода в нее, на колонки или наушники. Кроме того, на стандартных микросхемах фирмы Intel реализованы два USB, последовательный RS-232 и параллельный IEEE 1284 порты.

Но не зря кристалл Cobalt дал название всему набору микросхем. В нем, наряду со всем прочим интегрированы очень важные компоненты — аппаратные ускорители построения геометрических примитивов, 2D-изображений и наложения текстур. Размещение на одном кристалле графического ускорителя с управляющими ОЗУ схемами позволяет выполнять операции с графическими объектами максимально эффективно. Связывающая процессор графики с общим полем памяти 256-разрядная шина может пропускать до 3,2 Гбайт/c, т.е. в шесть раз больше, чем AGP.

Новые роли старых знакомых

В качестве процессоров могут использоваться хорошо знакомые Pentium II, Pentium III или Pentium III Xeon. Уже объявлено о поддержке 600-МГц процессоров. Однако, когда их установили в SGI Workstation, они продемонстрировали совершенно удивительные результаты при обработке больших объемов информации. Взглянув еще на несколько цифр, начинаешь понимать, почему это происходит. Итак, пиковые пропускные способности: канала передачи аналогового и цифрового видеосигнала в память — 1,6 Гбайт/c; из памяти к монитору — 1,6 Гбайт/c; двух 64-разрядных шин PCI — 534 Мбайт/c. И лишь скорость обмена данными между процессором и ОЗУ осталась прежней — 800 Мбайт/с. Она определяется самим ЦП.

Управляется SGI Workstation также старой знакомой — ОС Windows NT, модификация которой для Workstation способна делать то, чего ее обычная версия 4.0 для ПК еще не может, например поддерживать интерфейс FireWire IEEE 1394. Тем не менее все программы, работающие под управлением обычной NT, могут функционировать и здесь. Другое дело, что для полного использования всех возможностей новой архитектуры они должны быть соответствующим образом оптимизированы. А как показывает практика, в чехарде смены разнообразных процессоров такие программы появляются, увы, не скоро.

Свобода, экономика, интеграция

Мы не стали проводить тестирование скоростных качеств новых станций на традиционных тестах PC World. Возможно, что при их применении обнаружились бы ПК, выполняющие какие-то задачи со скоростями, сравнимыми с теми, которые обеспечивают SGI Workstation на аналогичных процессорах. Нужны другие, специальные тесты. Да мы и не ставили своей задачей выявить лидера в мире рабочих станций. Ясно, что среди Unix-компьютеров есть экземпляры с такими же или даже более высокими характеристиками. Удовлетворимся же пока данными разработчика, согласно которым среди рабочих станций с ними пока никто не может сравниться по соотношению цена/производительность. Во всяком случае, превратить ПК в станцию, имеющую близкие характеристики, обойдется явно дороже, чем приобрести изделие SGI.

Компьютер SGI Visual Workstation демонстрирует не только новый подход к решению проблемы обработки больших объемов информации в реальном времени, но и иной уровень интеграции всех подсистем. Весь базовый набор функций реализован на одной плате, что, конечно, повышает надежность и скорость их выполнения. Но такое решение имеет и обратную сторону — в случае отказа придется заменять саму плату. Нет близких сердцу любителя ПК плат расширения, хотя, как ранее уже говорилось, наличествуют две высокоскоростных шины PCI и шесть соответствующих разъемов. Устанавливай — не хочу! Но что же выбрать? Ведь всякая попытка заменить действующие подсистемы непременно приведет к ухудшению характеристик. Если только добавить что-нибудь вроде адаптеров дополнительных накопителей или плат ввода сигналов...

Итак, право на радости неограниченной модернизации, столь привычные сторонникам ПК, в случае SGI Visual Workstation существенно ограничено. Но может быть, принцип свободы выбора и стоит того, чтобы переплатить?

А если серьезно, то в заключение следует отметить, что архитектура SGI Visual Workstation замечательна уже хотя бы тем, что продемонстрировала наличие у старой, испытанной открытой архитектуры ПК еще одного альтернативного пути развития. А намерения фирмы SGI продолжить, наряду с совершенствованием собственного процессора MIPS, развитие Linux свидетельствуют о ее возросшем потенциале. Мы наверняка станем свидетелями сосуществования и взаимного полезного обогащения различных архитектурных школ.