«Первый вал» SOC

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

Фрагмент первый: "дырка" VU#247371 в СУБД Borland/Inprise Interbase,
обнаруженная после открытия исходных текстов этой системы сторонней по отношению
к разработчику организацией (www.kb.cert.org/vuls/id/247371).
Казалось бы, мелочь, да и "программирование — это искусство создания ошибок",
но… В отличие от канонических ошибок, связанных с небрежностями в управлении
памятью, VU#247371 — ошибка умышленная, "черный ход" (backdoor), позволяющая
любому удаленному пользователю с определенным псевдонимом, знающему "вшитый"
в систему пароль, получать неограниченный доступ как к базе данных, так и к ОС
(будь то Unix или Windows NT) на правах администратора (суперпользователя). "Черный
ход" VU#247371 существовал (по данным сайта www.interbase2000.org)
во всех версиях Interbase (4.0—6.0)… начиная с 1994 г. Президент и CEO Borland
Дейл Фуллер (Dale L. Fuller) так отозвался о факте выявления backdoor: "Это
одна из причин, почему мы поддерживаем открытые исходные тексты". Впрочем,
модель развития ПО нас в данный момент интересовать не будет, а вот скрытый за
фактом самого существования такой девиации куда менее приятный факт попробуем
понять: при определенных размерах программного проекта он практически выходит
из-под контроля самого разработчика. Об этом еще в 1995 г. в одной из своих статей
(уже увенчанной титулом "классика ACM", www.acm.org/classics/sep95/)
предупреждал Брайан Керниган: "The moral is obvious. You can’t trust code
that you did not totally create yourself" ("Мораль очевидна. Вы не можете
доверять программам, которые не созданы полностью вами"). Об этом же продолжает
предупреждать Никлас Вирт словами гениального Эйнштейна: "make it as simple
as possible, but not simpler" ("просто, как только возможно, но не проще").

Фрагмент
второй: Стив Баллмер, президент и CEO Microsoft, назвал Unix и Linux "главной
угрозой" сложившемуся положению вещей на рынке ПО. Здесь особых пояснений
не требуется, но с учетом предыдущего фрагмента напрашивается возможное толкование
высказывания Баллмера: сегодняшнему рынку ПО угрожают не столько конкретные реализации
открытых спецификаций POSIX, сколько сам факт существования, развития и совершенствования
подобных спецификаций. И тем более — факт становления "на ноги" модели
развития ПО с открытыми спецификациями, например достижения японского проекта
TRON (спецификации на совместимые ОС для разных прикладных областей), проекта
X-Open (так, система X Window, считавшаяся исключительно "тяжеловесной"
и ресурсоемкой, оказывается, вполне может быть реализована… шестью сотнями килобайт
кода, www.metrolink.com/microx/spec.html).

Из этих двух достаточно логичных интерпретаций малозначительных фактов следует не менее логичный вывод — кризис, о котором говорилось в конце прошлого столетия (то есть в предыдущем выпуске "Компьютерного Обозрения"), действительно существует. И если в области ПО уже есть пути его разрешения, то с "железом" дело обстоит несколько хуже. Вся прелесть открытых спецификаций системного ПО превращается в ужас, как только вспоминаешь о безумно сегментированной и неоднородной реальности hardware мира IBM-совместимых ПК. Не один хороший программный проект разбился о подводные камни драйверов для тысяч устройств, сотен нюансов реализаций и десятков чипсетов… Но и здесь не все так плохо — первая волна SOC (System On Chip, систем на чипе) уже нарушила покрытое тиной спокойствие "ПК-болота". Так что будем готовиться к "выходу в море"…

Что такое SOC?

Основная
особенность развитых SOC заключается в модели на уровне спецификаций. Фактически
SOC одного семейства представляют собой набор высокоуровневых конструкций — модулей,
позволяющих "строить" разнообразные модели интегрированных однокристальных
компьютеров для разных областей применения. Степень интеграции здесь оценивается
не столько в миллионах транзисторов на кристалле, сколько количеством дополнительных
микросхем, необходимых для реализации полнофункционального устройства. В идеале
(и для многих существующих моделей) достаточно "добавить" только ОЗУ,
flash-память, несколько разъемов — и компьютер готов.

Гарантированная минимизация затрат производителя конечного продукта (согласитесь, маленькая плата, на которой располагается SOC-микросхема, несколько разъемов для установки DIMM и подключения периферийных устройств, даже по идее существенно дешевле обычной материнской платы из ПК-мира), снижение потребительской стоимости компьютеров, уменьшение габаритов, изменения дизайна — это далеко не главные достоинства SOC-модели. Главные же достоинства скрыты от потребителя, но на самом деле именно они сулят неожиданно интересные перспективы…

Чего ждать от SOC?

Когда высказывание "Сеть — это компьютер" стало почти истинным
(ведь существуют работоспособные проекты, превращающие сотни тысяч разнообразных
компьютеров в одну большую "числодробилку", например Seti@Home), наступила
пора материализации нового лозунга — "Компьютер — это сеть". Последнему
есть даже очевидные свидетельства, главным из которых является бурное развитие
последовательных интерфейсов. Будь то USB (USB 2.0), FireWire или Serial ATA,
все эти "пока еще шины" на деле превращают компьютер в… сеть. До полного
торжества сетецентричности остается сделать совсем немного, а именно — создать
действительно интеллектуальную периферию, основанную на открытых спецификациях.
Сложная в формулировке, эта цель на деле означает замечательную трансформацию
сегодняшнего ПК в совокупность гарантированно совместимых дешевых независимых
устройств, управляемых встроенными тонкими серверами.

Так,
мы не привыкли задумываться, "чего стоит", например, поддержка ядром
используемой нами ОС файловой системы, размещаемой на "тупых" от рождения
и по сей день IDE-дисках. А "стоит" она десятков тысяч строк кода —
машинно-зависимого кода, который трудно модифицировать при изменениях "железа"
и в котором могут быть (и обязательно есть) ошибки. Зато легковесный тонкий сервер,
упрятанный в HDD, реализующий файловую систему и высокоуровневый протокол доступа
к ней (например, такой, как 9P из ОС Plan9), позволяет полностью "освободить"
ядро ОС от машинно-зависимых задач управления дисками. Но не это главное — "разгруженное"
ядро легче совершенствовать, а тонкие серверы легче разрабатывать, что означает
несоизмеримо более высокие показатели качества и удобства — ведь с помощью тонких
серверов и одного и того же протокола можно подключать любые устройства — даже
высокопроизводительные графические акселераторы.

Такая картина, несколько идеализированная, в целом не только позволяет спастись от "болезни сложности" и связанных с ней симптомов ненадежности и недоверия. Она формирует принципиально новую инфраструктуру "равных возможностей": избавление от драйверов и переложение обязанностей по созданию "внутренностей" тонких серверов на плечи разработчиков самих периферийных устройств гарантирует высокое качество реализаций (кто лучше разработчика может знать самые тонкие нюансы устройства); строгое соблюдение "правил игры" — высокоуровневых интерфейсов — обеспечивает совместимость; упрощение системного ПО открывает возможности "участия в игре" перед средними и малыми компаниями, "вторыми" и "третьими" странами. С точки зрения потребителя, все это выражается проще — будет больше работы (в hardware- и software-секторах производства), больше хороших, дешевых и совместимых компьютеров, больше интересного и нужного ПО.

Мир SOC

Пересчитать производимые разными компаниями системы на чипе очень трудно,
добиться же актуальности подобного материала практически невозможно. Чуть ли не
каждый день появляются анонсы новых продуктов, проектов и, что самое интересное,
новых подходов к формированию инфраструктуры разработки и производства SOC.

Одним из самых ярких событий, несмотря на не слишком высокие технические показатели предлагаемой системы, можно считать скромное объявление, сделанное 15 декабря 2000 г. калифорнийской компанией Metaflow на конференции Design—Reuse ("Проектирование—Повторное использование") в Гренобле. Впервые в истории индустрии на рынке появляется SOC с… открытыми исходными текстами. За основу новой системы Implosion (это действительно взрыв!) принята разработка процессора Leon-1 — 32-битового, SPARC-совместимого процессора, созданного и "освобожденного" в рамках космического проекта Европейского Космического Агентства. Исходные тексты пригодной к синтезу модели процессора Leon-1 доступны на основании лицензии GNU, а сам процессор соответствует стандарту IEEE-P1754 (на архитектуру SPARC). Следует отметить, что реализация Leon-1 весьма неприхотлива — для нее требуется менее 30 тыс. вентилей, а при технологической норме производства 0,35 мкм можно выпускать кристаллы с тактовой частотой 100 MHz, что для специфических SOC-задач обеспечивает более чем приемлемую производительность. Площадь кристалла, необходимого для реализации Leon-1 при этой же технологической норме, — менее 2 мм2. Для Leon-1 доступна масса высококачественных бесплатных программных продуктов — от операционных систем реального времени (например, eCOS, совместимой со спецификациями TRON) и различных реализаций ОС Unix (включая Linux) до компиляторов языков С++ и Ada 95 (gcc и gnat), отладчиков, загрузчиков и симуляторов. Разработчики из Metaflow (подразделения STMicroelectronics), используя более чем 15-летний опыт проектирования сложных микроэлектронных систем, добавили к базовому модулю Leon-1 обширный ряд синтезируемых периферийных устройств: адаптеры Ethernet/FastEthernet, многоканальные контроллеры DMA, оперативной памяти SRAM, flash-памяти, USB-контроллеры, VGA/SVGA/XGA LCD-видеоконтроллер с поддерживаемым разрешением до 1024 x 768 пикселов, DSP-сопроцессор, сопроцессор плавающей точки и аппаратную подсистему шифрования/дешифрования.

Наиболее многочисленное семейство SOC, естественно, основано на ядрах процессоров ARM. Мудрый шаг, который в свое время сделала компания ARM и который уже после нее успешно повторила MIPS, — концентрация на разработке пригодных к синтезу моделей — принес свои плоды… Впрочем, судите сами.

Cirrus Logic (CL), несмотря на свое "ПК-прошлое", прорывается в будущее сразу шестью моделями основанных на ARM систем на чипе. Одна из них — EP7312 — представляет собой однокристальный компьютер, эквивалентный по производительности ПК с процессором i486DX4-100 (при тактовой частоте 56 MHz). Конечно, такое сравнение кажется неудачным — процессоры подобного класса давно ушли с ПК-сцены, но ведь еще сравнительно недавно мы все на них работали, и медленными они не казались. Да и, в конце концов, всегда есть обширный класс задач, для которых даже такая производительность достаточна. Зато оснащенность EP7312 смело можно назвать избыточной — в одном маленьком чипе со всего 208 выводами "упакованы" и полноценный контроллер LCD-монитора, и аналог чипсета ПК (управление ОЗУ и ПЗУ), последовательные порты, параллельный порт, "звуковая карта", интерфейс IrDA. Короче говоря, для полноценного PDA или тонкого ПК остается добавить только ОЗУ (до 512 MB!) и flash-память с ОС. При этом потребление энергии самим кристаллом составит всего… 94 мВт! Для приложений, требующих более высоких вычислительных ресурсов, CL предлагает модель EP9312 200 MHz, оснащенную по всем правилам ПК-мира: мощное процессорное ядро ARM920T с быстродействующим сопроцессором плавающей точки и расширенной для решения задач обработки аудиовидеосигналов системой команд, встроенный (размещенный на кристалле) BootPROM (микросхема загрузки), EIDE-контроллер, сетевой интерфейс (Ethernet/FastEthernet), многоканальный DMA-контроллер, контроллер LCD с тактильным экраном, USB-хаб. Для EP9312 "дополнительные расходы" еще меньше — здесь достаточно добавить ОЗУ для создания, например, тонкого клиента, загружаемого по сети.

Для
разработки тонких серверов возможности SOC от CL являются избыточными, но на рынке
есть еще игроки. Компания Aplio производит на основе ARM-ядра специализированную
SOC с ярко выраженной "тонкосерверной спецификой". Модель Aplio/TRIO
содержит процессор с невысокой тактовой частотой (20 MHz), два DSP-сопроцессора
с производительностью 40 MIPS каждый, интегрированные Ethernet/FastEthernet порт
и хаб (!), USB-порт, более 170 KB встроенной оперативной памяти для DSP. Компания
Triscend, известная своими разработками в области интеграции микропроцессоров
и программируемой логики, выпускает еще более "серверно-ориентированный"
чип A7 CSoC, предоставляющий в распоряжение конструктору не только производительное
ARM-ядро и внутреннюю шину с пропускной способностью 240 MBps, но и полный спектр
необходимой периферии, дополненной встроенной подсистемой "Программируемой
Системной Логики". Такая архитектурная особенность позволяет создавать самые
разнообразные аппаратно-программные устройства из "готовых" микросхем.

Отдельная "ветвь" SOC, несмотря на очень высокие показатели, оказалась в изоляции и развивается достаточно слабо. Речь идет о семействе StrongARM, представленном чипами исключительно производства Intel. Один из наиболее подходящих для создания высокопроизводительных портативных компьютеров процессор пока не занял достойного места в "истории эволюции". StrongARM SA-1110 — действительно мощная машина, содержащая на одном кристалле фактически все, что должно быть в хорошем ПК, потребляющая всего 0,25 Вт, — очень серьезная заявка Intel на "большой кусок пирога пост-PC".

Если семейство ARM предлагает SOC низкого и среднего классов производительности, то основанные на ядре от MIPS системы ориентируются на, если так можно сказать, класс "карманных рабочих станций". Подтверждается это высоким быстродействием игровых консолей, в которых MIPS SOC обосновались очень прочно. Один из лидеров мира "MIPS-совместимых" систем, NEC, выпускает ряд моделей очень интересных чипов с исключительно удачным соотношением цена/производительность. Так, модель VR4121 предоставляет в распоряжение конструктору 64-битовый процессор с тактовой частотой до 170 MHz, контроллеры памяти, системной шины, прерываний, DMA, клавиатуры и тактильной панели, IrDA, аудио-кодек и т. д. При этом энергопотребление составляет всего 0,4 Вт, что очень неплохо для вычислителя подобного класса. Модель МК4181 при меньшей тактовой частоте (66 MHz) расширяет возможности встроенными контроллерами LCD и USB, SOC VR4122 при тактовой частоте 180 MHz потребляет 0,3 Вт и позволяет использовать обширный спектр периферийных чипов за счет встроенного контроллера PCI-шины. Но, пожалуй, самыми интересными и перспективными SOC располагает компания Alchemy Semiconductor — ее системы на основе 32-битовых MIPS-процессоров при тактовой частоте 400 MHz потребляют всего 0,5 Вт. Если учесть, что MIPS — более чем высокопроизводительная архитектура, то оснащенные аппаратным ускорителем DSP-операций SOC Au1000 при тактовой частоте 400—500 MHz позволяют создавать карманные компьютеры с батарейным питанием, сопоставимые с настольными ПК-системами среднего класса.

Менее распространенное, но развиваемое двумя очень серьезными игроками — Motorola и IBM — семейство SOC на основе процессорного ядра PowerPC на сегодняшний день представлено двумя моделями, ориентированными на разные области применения. MPC823e производства Motorola — уникальный чип, специально созданный для построения высокопроизводительных коммуникационных систем. Двухпроцессорная архитектура (CPU + коммуникационный процессор), двухпортовая память, соединяющая процессоры, два высокоскоростных программируемых контроллера последовательных соединений, видеоконтроллер (NTSC/PAL), контроллер LCD, интерфейсы PCMCIA и ATA — это далеко не полный перечень "оснастки" MPC823e. Одна из самых интересных особенностей SOC от Motorola — возможность изменения микропрограммы коммуникационного процессора для поддержки самых разных протоколов: Ethernet, IrDA, UART, ISDN… В свою очередь, в выпускаемой IBM модели SOC PowerPC 405GP ставки сделаны на высокопроизводительное процессорное ядро (тактовая частота до 266 MHz) и интегрированный Ethernet/FastEthernet-контроллер, что позволяет успешно применять эту SOC в самых разных областях — от Internet-приставок до принт-серверов.

Класс PC-совместимых SOC по сравнению с ARM- и MIPS-системами оказался в меньшинстве.
Здесь лидирует National Semiconductor с очень удачным семейством Geode, представленным
тремя моделями чипов. Основанные на 266-мегагерцевом x86-совместимом ядре SOC
типов SC1200, SC2200 и SC3200 представляют собой полноценные ПК (без ОЗУ) с различными
"видеокартами" — от NTSC/PAL дисплейной подсистемы (в младшей модели
SC1200) до 2D-акселерированного контроллера ЭЛТ или TFT LCD. Упомянутая выше STMicroelectronics
также производит PC-совместимые SOC семейства STPC (моделей Elite, Consumer, Atlas).
Эти SOC обладают невысокой тактовой частотой (133 MHz), но выгодно отличаются
низкой стоимостью. Аппаратная "начинка" их достаточно стандартна и также
требует для построения полноценного ПК с акселерированной графикой фактически
только дополнительного ОЗУ.