О многоядерных процессорах и их программной поддержке

О многоядерных процессорах

и их программной поддержке

Олег РУСАНОВ

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

Проблемы

Технические трудности, которые стоят на пути создания оптимизированного «многоядерного ПО», для многих потребителей отнюдь не очевидны. На первый взгляд, многоядерный процессор — это всего лишь несколько ЦП в одной упаковке, а если так, то и работать с ним нужно теми же методами, что и с несколькими обычными ЦП, воспринимая его как классическую конфигурацию с симметричной многопроцессорной обработкой (Symmetrical Multi-Processing — SMP)1. Системы типа SMP появились достаточно давно, за годы их существования под них наработана обширная программная база. И сегодня данное обстоятельство служит едва ли не основной причиной недоумения пользователей по поводу затянувшейся реализации оптимизированной поддержки многоядерных ЦП в операционных системах ведущих поставщиков.

Истоки такого недоумения следует искать в неверных исходных положениях. К сожалению или же к счастью, при всей своей кажущейся близости к SPM современный многоядерный процессор — это уже далеко не SMP-система. У изделий Intel Core2 Duo первого поколения различия начинаются уже на самом верхнем, «макроархитектурном» уров-не2. В конфигурации типа SMP каждый ЦП имеет собственный кэш L2, который находится в его полном и безраздельном владении, в случае же Core Duo кэш L2 является

общим ресурсом для двух ядер, причем не потому что так разведены проводники, а потому что такова его (кэша) концептуальная роль в сложно устроенной системе нового типа, именуемой Intel Core Duo. Одного этого уже достаточно, чтобы задача оптимизации ПО под многоядерные платформы стала как минимум нетривиальной. Многоядерные процессоры имеют и много других особенностей архитектурного и функционального свойства, существенно дополняющих и расширяющих классические SMP-архитектуры и столь же существенно осложняющих жизнь программистов.

Есть и еще один важный технический момент, касающийся SMP. Для архитектур типа SMP уже давно существуют операционные среды, с той или иной степенью эффективности их поддерживающие. Проблема в том, что исторически подавляющее большинство таких ОС принадлежало к серверному классу. В настольных и тем более во встраиваемых (Embedded) приложениях SMP-конфигурации всегда были представлены весьма скромно, и обслуживались они, главным образом, все теми же серверными ОС и операционными системами общего назначения, то есть различными версиями Unix и Windows, а в последнее время — и Linux. Особо острая конкуренция наблюдалась в секторе Unix: компания IBM (www.ibm.com) предлагала свою Unix-систему с поддержкой SMP, Sun (www.sun.com) — свою, Hewlet-Packard (www.hewlett-packard.com) — свою.

Аппаратной базой для соответствующих конечных решений служило оборудование VMEbus (www.vita.com), CompactPCI, PICMG 1.3 (www.picmg.com), встраиваемые материнские платы. Впрочем, это детали, главное здесь — тяжеловесность большинства существующих программных платформ для SMP и ориентированность этих платформ на серверные задачи. Узконаправленная ориентация классических ОС с поддержкой SMP разительно контрастирует с той «широтой взглядов», что исповедуют нынешние идеологи многоядерной революции, продвигающие современные ЦП с несколькими вычислительными ядрами буквально во все секторы всех мыслимых компьютерных и околокомпьютерных рынков за исключением разве что приложений класса Lowest End (стиральные машины, кофеварки и др.). Это очень серьезная, принципиальная проблема, простым переносом ПО с классической SMP-архитектуры на новый процессор тут ничего не добиться. Трудно вообразить себе промышленный контроллер, пусть даже очень высокопроизводительный и столь же многоядерный, который работал бы под управлением, к примеру, Sun Solaris.

Уверенность

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

1 Или с асимметричной многопроцессорной обработкой (Asymmetrical Multi-Processing — AMP), когда на каждом из нескольких ЦП работает своя операционная система.

2 У Intel Core2 Duo каждое ядро имеет собственный кэш второго уровня, однако в будущем инженеры Intel могут вернуться к концепции разделяемых кэш-ресурсов, поскольку данная архитектурная особенность позволяет повышать производительность без перехода на новые технологические нормы. Вспомним, что разделяемый кэш L2 внес весьма существенный вклад в общее снижение энергопотребления первых процессоров Intel Core Duo.

ки развитых ОСРВ (платформа LynxOS 2 компании LynuxWorks, www.lynuxworks.com)3.

Надежды на скорое появление оптимизированной программной поддержки многоядерных ЦП перерастают в уверенность, когда начинаешь анализировать нынешнее состояние индустрии микропроцессоров и размышлять о роли отдельной компании в истории. Имеется в виду компания Intel (www.intel.com). Не она придумала многоядерные процессоры, эта заслуга принадлежит корпорации IBM, но именно Intel сумела сделать их массовым продуктом, бросив на новое многоядерное направление львиную долю своих отнюдь не самых скромных инженерных и производственных ресурсов. Если бы в итоге Intel потерпела неудачу, аналитики назвали бы такой поступок «безрассудной авантюрой», а так им приходится говорить о многоядерной революции. Совершенной, подчеркнем еще раз, силами одной отдельно взятой компании. Заручившись поддержкой со стороны основных производителей системного ПО, прежде всего, со стороны корпорации Microsoft (www.microsoft.com), компания Intel сделала эту революцию максимально безболезненной (чтобы не сказать — незаметной) для конечного пользователя и вплела ее в общую канву непрерывного развития микропроцессорных технологий, причем проделала это настолько ловко, что абсолютное большинство конечных пользователей, приобретающих сегодня изделия Intel Core Duo и Intel Core2 Duo, совершенно не ощущают себя революционерами. Пользователи процессоров Intel в массе своей не борцы за идею, они не ходят на митинги, не участвуют в демонстрациях и не строят баррикады, они всего лишь делают запланированные апгрейды и ничем при этом не рискуют. А вот сама Intel рискнула многим, но многое в итоге и получила, а именно — доминирующее положение на рынке микропроцессоров. Сегодня персональный компьютер на базе одноядерного процессора воспринимается как анахронизм вне зависимости от задачи, для которой он используется, — вот чего добилась Intel. А миллионы пользователей совершили переход из одноядерной эры в многоядерную, даже не заметив этого. Уже по одной этой причине имя Intel будет жить в веках, и уже по одной этой причине все без исключения операционные среды, имеющие хоть какой-нибудь вес на рынке SOHO (рынок офисных и настольных решений) или же в секторе встраиваемых систем, неизбежно обзаведутся оптимизированной поддержкой многоядерности уже в самом ближайшем будущем.

Многоядерные процессоры и встраиваемые ОС

Может возникнуть вопрос: а причем здесь встраиваемые системы? Многоядерные процессоры наводнили сегменты офисных, сер-

верных и высокопроизводительных мобильных приложений, с которыми приложения класса Embedded имеют мало общего. Так ли нужны все эти Core Duo разработчикам встраиваемых систем? И так ли нужно оптимизировать свои операционные системы тем софтверным компаниям, для которых эти разработчики являются клиентами?

Вопросы эти разрешаются сами собой, если отбросить расхожие штампы и честно попытаться понять, что же в действительности происходит сегодня в секторе встраиваемых систем. Начнем с того, что вновь обратимся к событиям недавнего прошлого. Выпустив процессор Intel Pentium M, компания Intel не только сыграла на руку производителям ноутбуков, но расположила к себе значительную часть участников рынка встраиваемых систем и существенно увеличила свою долю в этом секторе. Процессоры Intel использовались в приложениях класса Embedded и раньше, однако это были не самые продвинутые представители данной продуктовой марки в плане производительности. Последнее обстоятельство, впрочем, не играло большой роли в тех случаях, когда решающее значение имела не скорость вычислений, а цена и энергопотребление, что было и остается справедливым для очень многих встраиваемых систем. Уникальность процессора Pentium M состояла в том, что он впервые позволил получить в Embedded-приложениях действительно высокую, «десктопную» производительность за приемлемые деньги и без катастрофического роста энергопотребления. А в нагрузку ко всему этому шла автоматическая совместимость с программными продуктами Microsoft. Впервые в истории игроки рынка встраиваемых систем получили возможность практически ни в чем себя не ограничивать и не преминули воспользоваться этой возможностью, что принесло ощутимые дивиденды как им самим, так и их клиентам.

Сегодняшняя ситуация во многом напоминает эту все еще недавнюю, но уже историю. Множество преимуществ, которыми обладают Intel Core Duo и Intel Core2 Duo по сравнению с процессорами Intel предыдущих поколений (к каковым мы относим ныне и Pentium M), не позволяет думать о том, что достоинства многоядерных ЦП останутся неоцененными на рынке встраиваемых систем. Более того: есть все основания утверждать, что многоядерные решения Intel в этом секторе ждет доминирование, и доминирование долгосрочное.

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

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

Изменения на рынке Embedded лежат в русле глобальной тенденции: диффузии технологий из мира настольных и серверных систем в смежные сектора. Данная тенденция обусловлена, прежде всего, экономическими причинами: рынок SOHO является массовым и потому аппаратные и программные средства на нем стоят дешево. К тому же эти средства весьма хорошо отлажены и апробированы. Разумеется, прямой перенос возросших на офисной почве технологий в чуждую им среду возможен далеко не всегда; как правило, необходима еще и их специальная адаптация.

Примеров такой адаптации не счесть. Взять хотя бы магистрально-модульные системы CompactPCI, появившиеся в результате адаптации офисно-настольной технологии PCI под промышленную специфику (надежные штырьковые разъемы вместо «гребенки», прочные платы типа «Евромеханика», простой и удобный доступ ко всем платам, возможность замены плат без отключения системы, возможность организации ввода/вывода как со стороны передней, так и со стороны тыльной панели и др.). Стоит отметить и операционные системы серии Windows Embedded, оптимизированные под ограниченные аппаратные ресурсы и потому способные работать там, где «нормальным» версиям Windows работать решительно не полагается (встраиваемые/мобильные системы с малыми объемами ПЗУ/ОЗУ и медленными процессорами, в том числе наши с вами смартфоны и КПК). В продолжение потока ассоциаций вспоминается расширение RTX компании Venturcom (www.vci.com), придающее самым обычным настольным и офисным версиям Windows черты операционной системы реального времени (предсказуемые и малые задержки отклика). Можно назвать также технологию Industrial Ethernet, пришедшую в промышленность из офиса. Industrial Ethernet не является стандартом; под этим словом понимается множество различных и не всегда совместимых друг с другом спецификаций (Ethernet Powerlink, EtherCAT, EtherNet/IP, Modbus/TCP), которые, тем не менее, решают одни и те же задачи: придают Ethernet надежность и предсказуемость того уровня, который требуется в индустриальных приложениях, что и позволяет говорить об Industrial Ethernet как о единой технологии. На память приходят и «низковольтные» процессоры типа Low Voltage и Ultra Low Voltage, которые в силу своего пониженного энергопотребления и дешевизны подходят

3 В версиях Т,упхОЯ за номерами 3 и4 поддержка БМР не сохранилась, но в пятой версии появилась вновь.

для применения там, куда их «старшим настольным братьям» путь заказан (мобильные, промышленные и другие приложения, где важны энергопотребление, стоимость комплектующих и отсутствие вентиляторов).

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

Возвращаясь к последним, отметим также, что многоядерные процессоры на рынок встраиваемых систем толкает не только вышеупомянутая тенденция, но и ряд других факторов, имеющих в основном технологическую природу. Ведь высочайшая производительность на единицу потребляемой мощности — это далеко не все преимущества Intel Core Duo и Intel Core2 Duo по сравнению со своими предшественниками. Достаточно назвать хотя бы аппаратную поддержку виртуализации (фирменная технология Intel VT), позволяющую объединять доселе необъеди-нимое и совмещать несовместимое.

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

пьютера несколько виртуальных со своими ресурсами, операционными средами и приложениями. В многоядерных процессорах Intel виртуализация реализована аппаратно, позволяя работать с двумя ядрами одного ЦП как с двумя разными машинами. Если на одной такой машине запустить среду жесткого реального времени, а на второй — суперсовременную операционную систему Windows Vista, они не смогут помешать друг другу просто потому, что никогда не встретятся: ОСРВ будет заниматься критическими функциями, Windows же можно поручить визуализацию, высокоуровневое общение с пользователем, работу с периферией, сетью и проч. И это лишь один пример того, как разработчики встраиваемых систем могут задействовать аппаратную виртуализацию во встраиваемых системах; вообще же возможности, предоставляемые современными многоядерными процессорами по части совмещения различных функций, чрезвычайно широки. Можно запускать на разных ядрах разные встраиваемые ОС, можно распределять по разным ядрам, работающим под управлением одной ОСРВ, задачи с разным уровнями приоритетности/критичности/ секретности и т. д., и т. п. Здесь трудно строить какие-либо конкретные прогнозы, но несомненно, что в ближайшие годы мы увидим немало гибридных систем и решений, создать которые еще несколько лет назад не представлялось возможным. Тут вновь вступает в игру экономический аспект: когда вместо нескольких устройств (скажем, сетевого шлюза и высокопроизводительного контроллера) будет достаточно одного, это благоприятно отразится и на бюджете разработчика, и на бюджете пользователя.

Стратегия выживания в новых условиях

А что поставщики программного обеспечения? Поставщикам программного обеспечения необходимо все вышесказанное учитывать. А именно: реализовать в своих продук-

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

Посмотрите на Intel: вот уж воистину пример того, как нужно уметь отделять главное от второстепенного! На бизнес-уровне последние несколько лет эта компания только и занимается тем, что «сбрасывает оболочки», последовательно избавляясь от всего, что мешает ей жить в рамках двух процессорных архитектур: Core Duo и IA-32. Не дрогнув, в прошлом году Intel продала свое подразделение Xscale компании Marvell, несмотря на то, что соответствующее направление деятельности многие аналитики считали весьма перспективным. Без сожаления отказалась в новых многоядерных процессорах от микроархитектуры NetBirst, верой и правдой служившей ей много лет.

Софтверным компаниям никак нельзя игнорировать подобные факты при построении своих продуктовых стратегий. Им стоит крепко задуматься о своем будущем и брать пример с производителей аппаратных средств, проголосовавших за многоядерность на удивление дружно и слаженно. Многоядерные процессоры представлены сегодня на всех основных открытых платформах: PCI, CompactPCI, PICMG 1.3, VMEbus, AdvancedTCA, MicroTCA, AdvancedMC, ATX, Flex-ATX, Mini-ITX, Micro-ITX, EPIC, ETX, COM Express и даже PC/104. Высокая производительность новых ЦП хорошо сочетается с возросшей пропускной способностью современных интерфейсов, а их внутренняя организация по типу SMP — со все более широким применением принципа коммутации соединений в новых и не очень новых магистрально-модульных системах. Изделия на базе многоядерных процессоров уже стали флагманами ключевых продуктовых линеек всех основных производителей, выпускающих продукцию вышеперечисленных стандартов, — Kontron (www.kontron-emea.com), Force Computers/Motorola (www.motorola.com, www.motorola.com/computing), Radstone/GE Fanuc (www.gefanuc.com), Elma (www.elma.com), Thales Computers (www.thalescomputers.com), Dy4 Systems/Curtiss Wright (www.cwcembedded. com) — и быстро обрастают различными версиями и модификациями.

Что касается структуры рынка, подробно рассматривать каждый сектор нет смысла, благо везде картина примерно одинакова: новые продукты оснащаются преимущественно (а зачастую и исключительно) многоядерными процессорами, процент же одноядерных решений неуклонно сокращается. На рис. 1 представлено изменение долей процессоров различных типов в секторе VME

Intel MultiCore 10%

Xeon

Pentium III & Earlier 6%

SPARC/

ULTRASPARC

2%

SPARC/

Intel MultiCore ULTRASPARC Xeon 10% V 2% Other

1%\ \ I / 3%

Рис. 1. Присутствие различных процессорных архитектур на рынке VME в 2005 и 2007 годах по данным аналитического агентства Venture Development Corporation

Рис. 2. Высокопроизводительный одноплатный компьютер Kontron CP307-64,

реализованный в конструктиве 3U CompactPCI и оснащенный двуядерным процессором Intel Core2 Duo T7400

в период с 2005 по 2007 год. Цифры, а главное, темпы их роста, говорят сами за себя. Заметим, что в секторе УМЕ компания ІП:е1 никогда не пользовалась режимом наибольшего благоприятствования, и тот факт, что она смогла потеснить процессоры PowerPC на их исконной территории, говорит о многом. Заметим также, что доля процессоров PowerPC компании ІВМ, среди которых есть и многоядерные, при этом не сократилась.

Почему производители аппаратных средств ведут себя так, а не иначе? Потому что они привыкли думать на несколько ходов вперед и беспокоиться о том, какие процессоры они будут ставить на свои изделия через месяц, квартал, год. А ставить они будут те процессоры, которые есть на рынке. Сходным образом, хотя и с традиционным опозданием, вынуждены вести себя и софтверные компании, причем независимо от того, на какие именно секторы и приложения они ориентированы, поскольку многоядерная революция — явление повсеместное и всеохватное. На каких процессорах будут работать их операционные системы в следующем году? На тех, которые есть. Потому что ОС и ОСРВ, работающие на вышедших из употребления процессорах, никому не нужны.

История Pentium М благополучно завершилась на отметке 90 нм, и продолжения у нее не будет. Компания Ме1 продолжает переходить на все более тонкие разрешения, но производит по соответствующим техпроцессам лишь новые, многоядерные процессоры. Именно на новых, многоядерных ЦП компания ІП:е1 опробовала технологические нормы 65 нм и 45 нм, и именно многоядерные ЦП составят весь ассортимент выпускаемой компанией ІП:е1 процессорной продукции уже в 2010 году. А когда Ійеі Pentium М исчезнут окончательно, абсолютно все изделия, оснащенные этими процессорами в настоящее время, станут многоядерными, и им потребуется адекватная программная поддержка.

Существующие многоядерные аппаратные средства

Чтобы понять, как обстоят дела, достаточно бегло пробежаться глазами по многоядерным линейкам какого-нибудь одного производителя. Возьмем для примера международный холдинг Kontron. Сегодня Kontron устанавливает двуядерные процессоры Intel Core Duo и Core2 Duo на платы и модули форматов PICMG 1.3, 3U CompactPCI, 6U CompactPCI, COM Express, ETX 3.0, ATX, Flex-ATX, Mini-ITX и AdvancedMC. Вскоре этот список пополнится изделиями в конструктивах EPIC и PC/104, а также новыми версиями популярного промышленного контроллера ThinkIO.

Для решений на базе стандарта CompactPCI холдинг Kontron предлагает как платы высоты 3U, так и платы высоты 6U. Продукт Kontron CP307-64, выполненный на процессоре Intel Core2 Duo T7400 с тактовой частотой 2,16 ГГц и чипсете Intel Mobile 945GM Express + ICH7R, позволяет получить в малогабаритных системах формата 3U CompactPCI высочайшую производительность вкупе с поддержкой 64-разрядных вычислений (рис. 2). Модуль Kontron CP307-64 может иметь до 4 Гбайт памяти, оснащен всеми необходимыми интерфейсами и ориентирован на оборонные и промышленные приложения (добыча и транспортировка полезных ископаемых и т. п.). Аналогичный продукт для более крупногабаритных CompactPCI-систем высоты 6U называется Kontron CP6012-64.

Встраиваемым системам самых различных типов адресован модуль Kontron ETXexpress-CD, также построенный на чипсете Intel 945 GM Express с южным мостом ICH7M и 2,16-гига-герцовом процессоре Intel Core2 Duo T7400 (рис. 3). Данный продукт выполнен в стандартизованном формфакторе COM Express, имеет до пяти слотов расширения PCI Express x1, ОЗУ объемом до 2 Гбайт и множество разнообразных портов ввода/вывода. Модуль Kontron ETXexpress-CD может использовать-

ся в широчайшем спектре Embedded-приложений — от оборонных и мобильных систем до информационных терминалов и игровых автоматов.

Для сектора AdvancedTCA инженеры холдинга Kontron разработали плату AT8030, реализованную в соответствующем конструктиве и оснащенную тремя (!) двуядерными процессорами Intel Core2 Duo с тактовой частотой 1,5 ГГц (шесть ЦП-ядер на одной плате) (рис. 4). Каждый из трех процессоров имеет собственное вместительное ОЗУ. Продукт Kontron AT8030 поддерживает скоростные коммуникационные технологии PCI Express и 10 Gigabit Ethernet (соответственно для взаимодействия с мезонинами AdvancedMC и для обмена с другими платами по объединительной панели), имеет развитую интерфейсную подсистему и адресован самым современным телекоммуникационным приложениям.

Тем техническим специалистам, которым приходится длительное время работать «в поле», стоит обратить внимание на защищенный мобильный ноутбук Kontron NotePAC Duo, заключенный в прочный корпус из магниевого сплава (рис. 5). Благодаря применению малопотребляющей версии процессора Intel Core Duo, данный компьютер может длительное время работать без батарей. Ноутбук Kontron NotePAC Duo оснащен полным набором PC-интерфейсов, поддерживает широкий спектр беспроводных технологий и защищен от воздействия таких неблагоприятных факторов, как удары и вибрация (стандарт MIL-STD-810F), а также влага и пыль (класс IP54).

Обозревая многоядерную продукцию холдинга Kontron, нельзя обойти вниманием и соответствующие материнские платы. Среди предлагающихся сегодня встраиваемых материнских плат модель Kontron 986LCD-M/mITX, реализованная в конструктиве Mini-ITX и имеющая размеры 17x17 см, является одной из самых миниатюрных и функциональ-

Рис. 4. Сверхпроизводительная AdvancedTCA-плата Kontron AT8030, имеющая три двуядерных процессора Intel Core2 Duo и потребляющая в процессе работы всего 140 Вт

но-насыщенных. Продукт Intel Core2 Duo T7400 построен на комбинации из 2,16-гига-герцового процессора Intel Core2 Duo T7400 и чипсета Intel 945GM Express + ICH7R с интегрированным графическим ядром, поддерживает видеокарты PCI Express и имеет развитую подсистему ввода/вывода уровня современного ПК, включая восьмиканальный звук 7.1 HAD. Данная материнская плата предназначена для применения в разнообразных промышленных приложениях, информационных терминалах и игровых автоматах.

Приведенный здесь список многоядерной продукции одного конкретного производителя далеко не полон, но и этого перечня должно хватить, чтобы оценить масштабы происходящего. Обращаем внимание читателей на то, что все вышеперечисленные модули/платы/платформы (за исключением платы Kontron AT8030, которая должна быть выпущена в IV квартале 2007 года) являются серийными продуктами, то есть изделиями, запущенными в полномасштабное производство и активно продающимися уже сегодня. И для всего этого изобилия железа нужен оптимизированный софт. Тут есть над чем поразмыслить.

Оптимизированная поддержка: уже скоро

Оптимизацией поддержки классических SMP-конфигураций с учетом специфики многоядерных процессоров занялись, прежде всего, те компании, что поставляют популярные операционные системы общего назначения типа Windows и Linux. И добились в этом направлении определенных успехов. По мере проникновения ЦП Intel Core Duo/Core 2 Duo в другие сегменты компьютерной отрасли к процессу оптимизации подключились также и ведущие игроки рынка ОС реального времени, такие как LynuxWorks, WindRiver (www.windriver.com), QNX Software Systems (www.qnx.com) и др.

К сожалению, процесс этот далек от завершения у всех трех компаний, впрочем, LynuxWorks выпустила пятую версию своей платформы LynxOS с поддержкой классических SMP-конфигураций, компания QNX Software Systems также дружит с SMP и уже сейчас предлагает опробовать инструментальный пакет QNX Momentics, оптимизированный под многоядерные системы, а WindRiver обещает выпустить «многоядерную» версию ОСРВ VxWorks в конце 2007 года. На данный момент в гонке за лидерство на рынке многоядерных ОСРВ впереди LynuxWorks и QNX, но кто в итоге окажется победителем, пока не вполне ясно.

Почему оптимизация под многоядерные процессоры идет с относительным «скрипом» именно у поставщиков операционных систем реального времени? Нет ли здесь каких-то принципиальных трудностей? На наш взгляд, трудности действительно есть, но не технического, а, скорее, психологического свойства. До сих пор поставщики ОСРВ существовали в своем сравнительно небольшом мирке вполне вольготно. Свою основную прибыль они получали от уникальных внедрений, торговля же Runtime’ами была для них занятием более медитативным, нежели коммерческим. Рынок встраиваемых ОС десятилетиями не подвергался крупным потрясениям, жизнь на нем текла неторопливо, и его участники привыкли успевать всюду, никуда особо не торопясь. Заторопились они лишь тогда, когда стало приходить осознание того, что, благодаря ведущей роли компании Intel, правила ведения бизнеса в большом компьютерном мире кардинально изменились. Став массовыми продуктами, многоядерные процессоры неизбежно окажутся во встраиваемых системах хотя бы вследствие простой диффузии, если же к этой стихийной силе добавить добрую волю самой Intel, десятков хардверных компаний, заинтересованных в продвижении многоядерных решений на рынке Embedded, и тысяч их

клиентов, картина начинает выглядеть угрожающе. Вот почему на протяжении последнего года поставщики ОСРВ занимаются оптимизацией своей продукции под многоядерные процессоры со все возрастающим энтузиазмом. Вот почему мы обязательно увидим эту поддержку в операционных системах как трех вышеупомянутых, так и доброй дюжины других работающих на рынке встраиваемых ОС компаний, выпускающих продукты вроде Integrity (www.ghs.com), OSE (www.enea.com), OS-9 (www.microware.com) и др.

В свете всего вышесказанного можно лишь удивиться тому, насколько быстро многоядерные процессоры стали восприниматься в сегменте Embedded как нечто само собой разумеющееся. Несмотря даже на то, что, не являясь системами с архитектурой SMP в классическом понимании этого слова, такие ЦП не имели оптимизированной программной поддержки изначально и, по большому счету, не имеют ее сегодня. Понятно, что практически любое стандартное ПО, поддерживающее традиционные SMP-конфигурации, будет работать и на процессорах Core Duo. Однако вряд ли этого достаточно. Софтверные компании должны стремиться к тому, чтобы их программные продукты позволяли выжать из наличных аппаратных средств все, что только можно. К этому они в настоящий момент и стремятся, чему немало способствует компания Intel, снабжая их соответствующими трансляторами, другими инструментальными средствами, справочными материалами и прилагая иные усилия, призванные облегчить для поставщиков программного обеспечения процесс переноса их продуктов на новую аппаратную базу.

В конечном счете, кто сможет быстрее перестроить свой бизнес в соответствии с заданными Intel новыми правилами игры, тот и займет достойное место на зарождающемся рынке многоядерного ПО. Применитель-

но к персональным компьютерам и серверам все вполне прозрачно: данный сегмент вышеназванного рынка будет принадлежать Windows, различным версиям Linux и Unix. А вот в секторе встраиваемых систем реального времени зреет интрига: тот поставщик ОСРВ, который первым сможет предложить миру по-настоящему оптимизированную и эффективную поддержку многоядерных архитектур, получит шанс расширить свое жизненное пространство за счет конкурентов. Мы склонны думать, что победителем в этой гонке будет LynuxWorks, второй придет QNX Software Systems, а WindRiver возьмет «бронзу». Впрочем, дело здесь не только в сроках, но и в том, какие именно многоядерные архитектуры будут поддержаны той или иной ОСРВ в первую очередь. В случае QNX сомнений быть не может: первая многоядерная версия данной операционной системы будет адресована процессорам Intel. В отношении VxWorks мы склоняемся к аналогичному прогнозу. А вот с LynxOS возможны варианты: с одной стороны, платформа PowerPC является для этой ОС «родной», с другой стороны, велик соблазн потеснить конкурентов в нише Core Duo, тем более, что и возможности у LynuxWorks для этого есть, и ниша сия обещает немалые прибыли.

Камо грядеши, компьютерный рынок?

Компьютерный рынок в целом и сегмент встраиваемых систем в частности обречены заболеть многоядерностью, и очень надолго. Корпоративные предпочтения отдельных игроков этого рынка в данном случае ничего не значат, еще меньше значат предпочтения их клиентов. Лидирующими многоядерными архитектурами будут PowerPC и Core Duo. Они будут лидировать во всех значимых секторах, на всех стандартизованных открытых платформах, а со временем и во всех нишах, включая самый низкопроизводительный, «микроконтрол-

лерный» Low End. На процессорах Core Duo и PowerPC будут базироваться модули и платформы всех существующих и будущих стандартов и всех основных брендов.

Достаточно бегло просмотреть роадмапы ведущих производителей решений уровня плат, чтобы убедиться, что у одноядерных процессоров нет никакого будущего ни в обновленных системах VMEbus (стандарты VITA 46/VITA 48), ни в телекоммуникационных приложениях (AdvancedTCA, AdvancedMC, MicroTCA), ни на платформах промышленного класса (PICMG 1.3, CompactPCI, ATX, FlexATX, Mini-ITX, Micro-ITX), ни на хоть сколько-нибудь производительных встраиваемых модулях (EPIC, ETX 3.0, COM Express, PC/104). И потому уже очень скоро нормальная, оптимизированная поддержка многоядерных процессоров будет иметься на рынке в изобилии. Если же какой-то поставщик системного ПО окажется не способен обеспечить такую поддержку, это будет равносильно его уходу со сцены.

Позволим себе несколько слов в порядке лирического отступления. Ветераны отрасли должны помнить весьма поучительную историю, приключившуюся около 10 лет тому назад с замечательной операционной системой — Windows NT 4.0 для процессоров PowerPC. Формальной причиной прекращения работ над этой уникальной ОС послужило падение спроса, однако в реальности все было далеко не столь однозначно. Появление данного продукта рынок воспринял с огромным энтузиазмом: соединить надежность Windows NT с великолепными эксплуатационными качествами PowerPC — что может быть лучше? Первая версия Windows NT 4.0 for PowerPC оказалась «сырой» и низкопроизводительной, однако разработчиков это ничуть не смущало, ибо они верили, что уж Microsoft-то с такими проблемами точно справится. Но время шло, и ничего не менялось: новая операционная система продолжала работать заметно медленнее своего аналога для процессоров x86. Посовещавшись с компаниями IBM, Motorola и Groupe Bull, корпорация

Microsoft в итоге была вынуждена принять трудное, но необходимое решение; аналогичным образом поступили и три вышеупомянутые компании, прекратившие выпуск компьютеров с процессорами PowerPC и операционной системой Windows NT. Больше по линии Windows NT/2000/XP корпорация Microsoft с архитектурой PowerPC никогда не работала.

Для чего мы извлекли на свет божий эту древнюю историю, вправе спросить читатели? Исключительно для того, чтобы проиллюстрировать важность своевременного появления оптимизированной программной поддержки для новых аппаратных средств. При желании или же при особо неблагоприятном стечении обстоятельств (ясно, что в случае с Windows NT 4.0 for PowerPC имело место второе, а не первое) можно загубить даже очень перспективный продукт, который с нетерпением ждут тысячи клиентов, и даже ресурсов такого гиганта, как Microsoft, может оказаться недостаточно, чтобы спасти положение. Обратите внимание также и на то, кто по итогам данной аппаратно-программной нестыковки понес наибольший урон. Аппаратные средства (процессоры PowerPC) благополучно существуют до сих пор и будут существовать еще очень и очень долго, а вот программные исчезли без следа еще много лет назад: об операционной системе Windows NT для PowerPC сегодня помним лишь мы с вами.

И еще несколько не совсем относящихся к теме настоящей статьи слов. Или, если угодно, лирическое отступление номер два. В нашем с вами деле, дорогие читатели, важно контролировать эмоции, ибо они зачастую затмевают суть происходящего и мешают поступать правильно. Можно называть компанию Intel монополистом или каким-нибудь иным обидным словом, но от факта ее безусловного доминирования на рынке микропроцессоров никуда не деться. Сетовать на этот факт — примерно то же самое, что выражать недовольство голубым цветом неба. Впрочем, у тех, кого не устраивает мироздание как таковое, кто является непримиримым противником смены времен года, цветения цветов и суточного движения солнца с востока на запад, всегда есть выход. Есть выход и у участников рынка, точнее, у тех из них, кто не может смириться с многоядерностью вообще или же с многоядерностью от Intel в частности. Компания Intel всего лишь отстаивает свои интересы, делает это последовательно и успешно, иногда рискует, но в среднем и на больших временных масштабах остается в выигрыше. Ругать ее за это было бы по меньшей мере странно и столь же эффективно, как слать проклятия небесам. Гораздо полезнее заниматься своим прямым делом и подходить к этому занятию ответственно, памятуя об уроках прошлого и принимая во внимание особенности текущей ситуации.