Компьютеры, которые рядом: какими им быть?

18 август, 2008 - 10:04Андрей Зубинский

Лето дает возможность получить максимум удовольствий от компьютеров. Конечно, не от настольных или ноутбуков. Контроллеры кондиционеров и стиральных машинок, системы на чипе коммуникаторов и смартфонов, специализированные сигнальные процессоры МР3-плееров, арсенал всего встроенного интеллектуального в автомобили – все это в пору жары и отпусков работает с усиленной нагрузкой.

Давайте для начала займемся несколько неожиданным – определим четкие границы «ближнего» и «дальнего» компьютерных миров в окружающем нас пространстве предметов и вещей. Давайте немного задумаемся. Насколько «близок» к нам обычный заурядный персональный компьютер? Ответов на этот вопрос может быть множество. Причина такой множественности – метрики, на основании которых оценивается понятие «близости». Так, например, наивные технофилы-примитивисты (не утратившая инфантилизма аудитория журналов «Юный техник» и «Техника молодежи») склонны считать, что раз персонализация мощного компьютера достигнута на уровне прав собственности, то и полную персонализацию можно считать достигнутой. Увы. Эта прекрасная в своей наивности идея (в мультфильме «Падал прошлогодний снег» она увековечена фразой «Стану царем – пианину заведу. А то что это за жизнь, без пианины?») в реальности вдребезги разбивается в те крайне неприятные моменты, когда сотни миллиардов транзисторов и миллионов строк кода «вдруг» начинают делать что-то такое, чего их «владелец» от них не просто не ожидал, а даже не мог ожидать по причине того, что подобный уровень сложности системы превращает право собственности на нее почти что в фарс. Даже астролябия, которая сама меряет (было бы что мерять), хоть и совершенно замечательная штука, но требует от владельца изучения астрономии, нескольких курсов математики, основ навигации и прочая-прочая-прочая. Ее хозяина подобные нюансы могут несколько разочаровать. То же самое с персональным компьютером. Пока пользователь удовлетворяется минимальным набором заурядного (и потому массово востребованного и работоспособного), все, можно сказать, еще ничего. Но как только случаются любые отклонения от «нормы» (что от нормального функционирования, что от «нормального» пользователя), начинаются трудно преодолимые проблемы. Иными словами, расплатой за универсальность компьютера (хоть и персонального на уровне права собственности) является отдаление его от пользователя. А расплатой пользователя за это отдаление могут стать усилия (над собой) и средства (чаще всего – свои), которые надо затратить, чтобы научиться или у кого-то, или самостоятельно, использовать универсальную мощь своей собственности в весьма конкретных узкоспециализированных интересах и целях.

С другой стороны, насыщенные невидимой интеллектуальной цифровой электроникой предметы быта полностью противоположны универсальным компьютерам. Несмотря на то что, по сути, ими являются. Например, цифровую камеру-«мыльницу» (или цифровую фоторамку etc), безусловно, можно описать как весьма специфическую конструкцию, но если не задаваться целью испугать читателя роскошными и сложными аналогиями, то как эта камера есть компьютер с тремя специфическими периферийными устройствами (CMOS-камерой, внешним модулем флэш-памяти и кнопками пользовательского интерфейса, например), так о ней и следует говорить. Если принять «невидимость» подобных компьютеров в главной функциональности устройств, в которые они упрятаны, то, независимо от нашего желания, эти вычислительные машины как раз и образуют ближний к нам компьютерный мир. Что подтверждается самым простым наблюдением из жизни – люди, принципиально отвергающие персональные компьютеры, свободно используют современные микроволновые печи, стиральные машины, пленочные и цифровые фотоаппараты, автомобили, DVD- и CD-MP3-плейеры, в общем, все те устройства, которые сегодня без встроенной интеллектуальной составляющей никто не взялся бы производить.

Так что хотим мы того или нет, но ближним к нам (как к пользователям) компьютерным миром является мир встраиваемых систем, микроконтроллеров и цифровых сигнальных процессоров, аналоговых интерфейсных подсистем, программируемой и заурядной дискретной цифровой логики. Соответственно, положение вещей в этом мире представляет особый интерес. Даже для тех, кто никогда и не собирался заглядывать «под крышку» (увы, это калька с английского) привычных в повседневности устройств. Почему? Да просто потому, что человечество попадает в ту фазу развития, когда материализация возможности за счет затраченных на интеллектуализацию милливатт экономить киловатты становится не прихотью и не задачей, решаемой ради решения. Это уже, похоже, вопрос выживания биологического вида homo sapiens, не желающего становиться на четвереньки и возвращаться в пещеры.

Кризис

Увы, это лето для производителей компонентов встраиваемых систем во всем мире оказалось далеко не самым приятным. В недавнем интервью президент и CEO одного из ведущих производителей микроконтроллеров, корпорации Microchip, Стив Санги, который успешно ведет Microchip через все перипетии и рифы очень непростого рынка с 1990 г., воспользовался исключительно удачной игрой слов, чтобы охарактеризовать специфику настоящего времени. «Макропоказатели рынка кажутся туманными. ВВП за второй квартал? Если и наблюдается какой-то рост, то он ничтожен. Я думаю, что ВВП теперь надо называть Великой внутренней Проблемой» (в оригинале – GDP и Gross Domestic Problem). Невеселая макрокартинка, по мнению Санги (а к его мнению стоит прислушаться), сказывается на микрорынке встраиваемых систем даже несколько хуже, чем это можно было бы ожидать. Дело в том, что производители встраиваемых вычислительных систем и программного обеспечения для них фактически полностью зависят от рынков сбыта надсистем – тех товаров, устройств, приборов, механизмов и прочего, в функциональности чего и «прячется» их продукция. И если на рынках надсистем возникают сложности, это «аукается» куда худшими последствиями для производителей компонентов встраиваемой интеллектуальной электроники. Кризисы на рынках жилья высокоразвитых стран – это не только финансовые потери частных лиц, инвесторов и владельцев пакетов акций. Это еще и резкий спад спроса на весьма специфические электронные компоненты, которых в среднем жилом доме (квартире) может насчитываться до семи десятков. Повышение цен на топливо резко снизило популярность автомобилей премиум-класса с мощными двигателями. А именно в стоимости этих машин электроника составляет чуть ли не 30%. И львиная доля ее – это мощные микроконтроллеры, напичканные сложнейшим и безукоризненно отработанным программным обеспечением реального времени. Но все же главная проблема рынка встраиваемых систем, по мнению многих экспертов, – невидимость в обозримом будущем того, что принято называть «killer application». А без него производители вынуждены работать «на объемах». Иными словами – с очень маленькой нормой прибыли. И кризис существенно сужает границы той области, в пределах которой возможно возникновение «killer application».

8 – 16 – 32 ?

Ближний к нам мир встраиваемых систем традиционно отличался невысокой разрядностью своих основных компонентов – микроконтроллеров, самыми массовыми моделями которых до сих пор остаются всевозможные разновидности 8-битовых однокристальных машин. Но с учетом коррективом, вносимых кризисом, производители микроконтроллеров вынуждены обращать внимание на недавно еще невостребованный сегмент... 32-битовых вычислителей. Казалось бы, парадокс. Реализация ядра 32-битового процессора в любом случае будет требовать большей площади кристалла, чем 8-битового. Что уже означает – из одной и той же кремниевой пластины можно «нарезать» больше 8-битовых микроконтроллеров, чем 32-битовых. То же самое можно сказать и обо всех разновидностях памяти (кэш-памяти, если она есть, оперативной, долговременных энергонезависимых перезаписываемой и постоянной) – для 32-битовых машин их требуется больше. И не спешите возмущаться и приводить цифры – если бы это было не так, ARM и MIPS не создавали бы «утрамбованных» наборов команд (Thumb и MIPS16e), позволяющих 16-битовому коду исполняться в 32-битовой архитектуре. Иными словами – 32-битовость вовсе не означает «экономию» по целому ряду причин (мы только что говорили о самых поверхностных). При этом некоторые 32-битовые микроконтроллеры уже дешевле многих... 8-битовых. И при этом же их производители не скрывают, что наибольшим спросом продолжают пользоваться... 8-битовые модели. И при этом же все производители инвестируют в повышение разрядности своей продукции, причем не обязательно по принципу «берем максимум готового», что в мире встраиваемых систем является синонимом «берем ядро ARM».

Подобную ситуацию уже трудно назвать даже парадоксальной. 8-битовые системы на чипе, когда-то «освоившие» самую сложную для малоразрядных вычислителей область интернет-протоколов (хотя кого сегодня интересует пять лет назад устроенная истерия с подключением к Сети кофеварок), уже переведены усилиями производителей даже не на микро-, а нанопотребление энергии, количество наименований обучающей литературы, курсов, инструментария, тематических форумов и сообществ для них давно превысило мыслимые и немыслимые границы. Больше того, архитектура простых 8-битовых вычислителей была доведена до очень близкой к требуемой прикладными областями – строго детерминированное время исполнения последовательности команд (отсутствие кэшей, конвейеров, сложных механизмов предсказания), минимальная посторонняя нагрузка на механизм вызова обработчиков прерываний – в общем, все, что неформально называется «то, что доктор прописал». И «вдруг» в крайне чувствительной к цене компонентов области начинает срабатывать правило «больше разрядов – лучше»? Парадокс? Заговор? Вселенская глупость? Ни то, ни другое, ни третье.

Классические встраиваемые системы ориентированы на обработку событий. Изменился какой-либо контролируемый показатель, изменилась аналоговая величина, считываемая с соответствующего датчика, система преобразовала это изменение в цифровое значение, обработала, выдала управляющие данные на интеллектуальный актуатор (исполнительное устройство). В большинстве применений период изменения контролируемой величины таков, что производительности малоразрядных контроллеров более чем достаточно для решения задач весьма сложной обработки, в том числе и для математических расчетов с разрядностью, превышающей аппаратные возможности вычислителя. В тех же надсистемах, где быстропротекающие процессы – нормальный режим функционирования (например, в системах управления двигателями внутреннего сгорания), многоразрядные скоростные вычислители применялись с тех времен, как они стали доступными.

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

В то время как мир классических встраиваемых систем сужается в силу дороговизны надсистем (кризис рынков жилья, автомобилей и т. д.), мир неоклассических систем растет – они дешевы, доступны и в какой-то мере дают людям возможность развлечься/отвлечься. Кроме того, область развлечений давала не один эталонный пример «killer application», потому от нее и ожидают большего.

В результате медленно, но уверенно даже по-настоящему культовые производители микроконтроллеров переходят к производству того, что можно назвать системами двойного назначения или «однокристальными управляющими ЭВМ с периферией». Упомянутая ранее Microchip, производитель знаменитого семейства микроконтроллеров PIC, в качестве подобных систем предлагает интересную однокристальную комбинацию 32-разрядного ядра MIPS M4K c отлаженной на всех низкоуровневых семействах «периферией». То есть тем разработчикам, которые инвестировали свое время, силы и средства в освоение малоразрядных микроконтроллеров Microchip, придется с нуля осваивать только ядро новой системы. Остальное будет хорошо знакомым. Подобный прием унификации узлов в пределах нескольких принципиально различных семейств устройств разных поколений можно назвать образцом инженерной практики. Кроме того, выбор прекрасно отработанного ядра MIPS де-факто означает возможность использования всего инструментального набора GNU для 32-битовых систем этой архитектуры, также прошедшего продолжительную проверку временем из-за распространенности MIPS-архитектуры. Кстати, о распространенности. По ряду причин MIPS «не на слуху» в первую очередь из-за того, что процессорные ядра весьма просты и настолько легко реализуются в заказных микросхемах, что 90% рынка кабельных модемов, 76% – интернет-приставок, 72% – VoIP и 70% – DVD-проигрывателей и пишущих устройств – это MIPS. Корпорация Atmel, производитель популярного семейства контроллеров AVR, выбрала особый путь, не стала лицензировать интеллектуальную собственность на процессорное ядро и предложила свою интересную 32-битовую разработку – AVR32. К игрокам «не по правилам» можно отнести японскую корпорацию Renesas (совместное предприятие Hitachi и Mitsubishi) и, конечно, наследницу Motorola Freescale. Renesas буквально нарушает все нормы и «тянет» из семейства в семейство собственную CISC-архитектуру несмотря на то, что в мире встраиваемых компьютеров RISC давно уже правит бал. Причем микроконтроллеры у Renesas получаются более чем хорошие. Большинство же разработчиков предпочитает не рисковать и лицензировать процессорное ядро ARM. Именно микроконтроллеры с этим ядром стали первыми 32-битовыми системами на чипе стоимостью в партиях менее $1.

В начале этого раздела мы упомянули о некоторых очевидных причинах необязательной экономии за счет использования во встраиваемых системах 32-битовых вычислителей. Теперь же можно сказать о причинах менее очевидных. Микроконтроллерная продукция Microchip и Atmel за счет простоты, изящности, отличного документирования и доступности средств разработки в свое время позволила десяткам тысяч энтузиастов вступить в к клан embedded-специалистов. Культовые микросхемы «обрастали» сообществами, самодельным аппаратно-программным инструментарием, сотнями тематических книг. На самом деле все это – не игрушки. Это важнейший механизм регенерации специалистов, ведь лучший учитель – любопытство и трудолюбие.

Увы, в надвигающемся времени всеобщей 32-битовости (а оно скорее всего наступит по изложенным выше причинам) вокруг сложнейших и одновременно «от одного производителя» систем, таких как AVR32, ничего подобного возникнуть не может. И ничего общего с ностальгией это утверждение не имеет. Все куда прозаичнее. Во-первых, если раньше разработчик мог на рынке труда отыскать одновременно увлеченного и достаточно грамотного специалиста, теперь ситуация изменилась – самостоятельно он уже просто физически и финансово «не потянет» самообучение. Что означает, например, дополнительные расходы на подготовку проектного процесса. Со всеми вытекающими последствиями. Во-вторых, повышение сложности используемой для решения простых задач элементной базы приводит или к повышению стоимости, или к снижению надежности, или, наконец, и к тому и к другому одновременно.