встраиваемые компьютеры что это
Что такое встроенные системы, где они применяются и как разрабатываются
В этой статье представлена информация о различных аспектах современных встроенных систем.
Что такое встроенная система?
Сегодня сложно представить современное мультимедийное электронное оборудование без возможности свободно выбирать параметры музыки, которую вы слушаете, или изображения, которое вы смотрите. Это возможно благодаря использованию микропроцессоров, управляющих работой этих устройств и размещенных внутри них (отсюда и название: Embedded System).
Компьютерные системы как сложные цифровые системы впервые были использованы для автоматизации вычислительных процессов по определенному алгоритму. Однако автоматизация может касаться не только вычислительных процессов. Следовательно, отправной точкой для разработки встраиваемых систем являются две дисциплины: автоматизация и информатика.
Комбинация методов и инструментов, используемых как в автоматизации, так и в информационных технологиях, позволила достичь совершенно нового качества. Несомненно, основной исходный контент содержится в термине: «Компьютерные системы управления». Они включают анализ и оценку компьютерных систем с точки зрения реализации управления объектами и процессами, а также необходимых требований к программному обеспечению для этих систем.
Развитие компьютерных систем и растущие требования к качеству контроля привели к появлению двух направлений в специализированных решениях для контроля. Это программируемые логические контроллеры (ПЛК) и микроконтроллеры. На основе этих тенденций создаются специализированные системы, которые выполняют все функции управления объектами или процессами и тесно связаны с ними.
Встроенная система должна соответствовать определенным требованиям, которые строго определены. Поэтому ее нельзя назвать типичным многофункциональным персональным компьютером.
Каждая встроенная система основана на микропроцессоре (или микроконтроллере), запрограммированном на выполнение ограниченного числа задач или даже только одной задачи.
В зависимости от назначения он может содержать программное обеспечение, предназначенное только для данного устройства (прошивка) или операционная система со специализированным программным обеспечением. Обычно это определяется степенью надежности, которую должна предложить встроенная система.
Как правило, чем менее сложным и специализированным является программное обеспечение, тем надежнее система и позволяет быстрее реагировать на критические события.
Надежность системы можно повысить за счет разделения заданий на более мелкие подсистемы, а также за счет резервирования, которое может заключаться в использовании двух идентичных устройств для одной задачи, одно из которых берет на себя задачи другого в случае его сбоя.
Где применяются встроенные системы?
Встроенные системы используются во многих сферах жизни, и область их применения, наряду с техническим прогрессом, постоянно расширяется.
Такие решения можно найти в измерительном оборудовании, в том числе осциллографах, анализаторах спектра, в автомобилях (например, бортовые компьютеры), компьютерном оборудовании (жесткие диски, оптические приводы, маршрутизаторы), в решениях для телекоммуникаций, в так называемых интеллектуальных зданиях, в устройствах, используемых в медицинской диагностике, системах управления полетом, а также, естественно, в станках с ЧПУ, роботах и промышленных машинах и ряде систем управления в автоматизации.
Главной особенностью, которая отличает встроенные системы от других компьютерных систем, является, помимо специализированного характера, качество программного обеспечения и используемых аппаратных компонентов.
История встроенных систем
Первой современной встроенной вычислительной системой реального времени был компьютер Apollo Guidance Computer, разработанный в 1960-х годах доктором Чарльзом Старком Дрейпером из Массачусетского технологического института для программы Apollo. Управляющий компьютер Apollo был разработан для автоматического сбора данных и выполнения критически важных расчетов для командного модуля Apollo и лунного модуля.
Apollo Guidance Computer
В 1978 году Национальная ассоциация производителей машиностроения выпустила стандарт для программируемых микроконтроллеров, улучшив конструкцию встроенных систем и к началу 1980-х компоненты системы памяти, ввода и вывода были интегрированы в тот же чип, что и процессор, образуя микроконтроллер.
Встроенная система на основе микроконтроллера будет впоследствии включена во все аспекты повседневной жизни потребителей, от устройств чтения кредитных карт и сотовых телефонов до светофоров и термостатов.
Как работает встроенная система?
Встроенные системы управляются микроконтроллерами или процессорами цифровых сигналов (DSP), специализированными интегральными схемами (ASIC), программируемыми логическими матрицами (FPGA). Эти системы обработки интегрированы с компонентами, предназначенными для работы с электрическими и / или механическими интерфейсами.
Инструкции по программированию встроенных систем, называемые микропрограммами, хранятся в постоянном запоминающем устройстве или микросхемах флэш-памяти, работающих с ограниченными аппаратными ресурсами компьютера. Встроенные системы соединяются с внешним миром через периферийные устройства, связывая устройства ввода и вывода.
Как разрабатываются встроенные системы?
Проектирование и создание встроенных систем не укладывается в существующие рамки стандартных дисциплин, с которыми эти решения связаны. Обязательно требуются знания как электроники, так и информатики. Несомненно, наиболее правильным решением было бы заняться вопросами разработки встраиваемых систем после получения подготовки также в области автоматизации и управления, а также мехатроники и робототехники.
Проектирование встроенной системы включает в себя как разработку специального аппаратного уровня, так и соответствующего программного обеспечения. В последнем можно разделить системную область и область приложения.
Системный уровень создает среду выполнения для встроенного приложения и, в зависимости от области приложения, имеет разную степень сложности. Для простых встроенных систем с закрытой не масштабируемой архитектурой системный уровень не является строго отдельным и не содержит механизмов для поддержки разработки приложений.
Передовые системы для медицины, авиации, телекоммуникаций и робототехники реализованы на основе специальных операционных систем или библиотек, которые содержат механизмы и функции, облегчающие разработку приложений и тестирование системы. Тем не менее, разработчик должен расширить системный уровень специальными драйверами.
Популярный онлайн видео курс:
Успех всего проекта во многом зависит от функциональности и удобства использования приложения. Создание встроенной системы требует анализа требований, разработки соответствующей архитектуры и ее сознательной декомпозиции.
Любая ошибка или игнорирование определенных требований на начальных этапах проекта может привести к провалу всего проекта. Плохие дизайнерские решения часто влекут за собой необходимость модификации не только программного, но и аппаратного обеспечения.
В случае систем для критических приложений также существует проблема безопасности, то есть в основном устойчивость системы к сбоям оборудования, электромагнитным помехам и ошибкам реализации.
В случае, если спроектированная система является сложной, например, система управления роботом на производственном предприятии, проект превращается в сложное логистическое мероприятие, требующее координации работы нескольких различных команд инженеров.
Будущие тенденции встраиваемых систем
Ожидается, что индустрия встраиваемых систем будет продолжать быстро расти благодаря постоянному развитию искусственного интеллекта (AI), виртуальной реальности (VR) и дополненной реальности (AR), машинного обучения, глубокого обучения и Интернета вещей (IoT).
В основе встроенных систем ближайшего будущего будут лежать такие тенденции, как снижение энергопотребления и повышение безопасности встроенных устройств, а также активное использование облачных технологий, приложений для глубокого обучения и инструментов визуализации данных в режиме реального времени.
Современные встроенные системы часто основаны на микроконтроллерах (т.е. микропроцессорах со встроенной памятью и периферийными интерфейсами), но обычные микропроцессоры (использующие внешние микросхемы для памяти и схемы периферийного интерфейса) также распространены, особенно в более сложных системах. В любом случае используемые процессоры могут быть разных типов, от универсальных до специализированных для определенного класса вычислений, или даже специально разработанные для конкретного приложения. Распространенным стандартным классом специализированных процессоров является процессор цифровых сигналов (DSP).
Встраиваемые системы варьируются от систем низкой сложности с одним микроконтроллером до очень высоких с несколькими устройствами, периферийными устройствами и сетями, которые могут располагаться в стойках для оборудования или на больших географических территориях, соединенных между собой линиями связи на большие расстояния.
СОДЕРЖАНИЕ
История
Разработка
Сегодня сравнительно недорогой микроконтроллер может быть запрограммирован на выполнение той же роли, что и большое количество отдельных компонентов. Благодаря микроконтроллерам стало возможным заменять даже в потребительских товарах дорогостоящие аналоговые компоненты с ручками, такие как потенциометры и переменные конденсаторы с кнопками вверх / вниз или ручками, считываемыми микропроцессором. Хотя в этом контексте встроенная система обычно более сложна, чем традиционное решение, большая часть сложности содержится в самом микроконтроллере. Может потребоваться очень мало дополнительных компонентов, и большая часть усилий по проектированию приходится на программное обеспечение. Прототип и тестирование программного обеспечения могут быть быстрее по сравнению с проектированием и созданием новой схемы без встроенного процессора.
Приложения
Миниатюрные беспроводные устройства, называемые пылинками, представляют собой сетевые беспроводные датчики. В сети беспроводных датчиков используется миниатюризация, ставшая возможной благодаря усовершенствованной конструкции ИС, для соединения полных беспроводных подсистем со сложными датчиками, что позволяет людям и компаниям измерять множество вещей в физическом мире и воздействовать на эту информацию с помощью систем мониторинга и управления. Эти пылинки полностью автономны и обычно работают от источника питания в течение многих лет, прежде чем батареи необходимо будет заменить или зарядить.
Характеристики
Встроенные системы предназначены для выполнения некоторых конкретных задач, а не для универсального компьютера для выполнения нескольких задач. Некоторые также имеют ограничения производительности в реальном времени, которые необходимо соблюдать по таким причинам, как безопасность и удобство использования; другие могут иметь низкие требования к производительности или не иметь их, что позволяет упростить системное оборудование для снижения затрат.
Пользовательские интерфейсы
Некоторые системы предоставляют пользовательский интерфейс удаленно с помощью последовательного (например, RS-232 ) или сетевого (например, Ethernet ) соединения. Такой подход расширяет возможности встроенной системы, позволяет избежать затрат на дисплей, упрощает BSP и позволяет разработчикам создавать на ПК богатый пользовательский интерфейс. Хорошим примером этого является комбинация встроенного HTTP-сервера, работающего на встроенном устройстве (например, IP-камере или сетевом маршрутизаторе ). Пользовательский интерфейс отображается в веб-браузере на ПК, подключенном к устройству.
Процессоры во встроенных системах
Примерами свойств типичных встраиваемых компьютеров по сравнению с аналогами общего назначения являются низкое энергопотребление, небольшой размер, жесткие рабочие диапазоны и низкая стоимость единицы продукции. Это происходит за счет ограниченных ресурсов обработки.
Готовые компьютерные платы
Решения для ASIC и FPGA SoC
Периферийные устройства
Инструменты
Программные инструменты могут поступать из нескольких источников:
Встроенные системы обычно используются в быту, кулинарии, промышленности, автомобилестроении и медицине. Некоторыми примерами встроенных систем являются MP3-плееры, мобильные телефоны, игровые приставки, цифровые камеры, DVD-плееры и GPS. Бытовая техника, такая как микроволновые печи, стиральные и посудомоечные машины, включает встроенные системы, обеспечивающие гибкость и эффективность.
Отладка
Встроенная отладка может выполняться на разных уровнях в зависимости от доступных средств. Различные метрики, характеризующие различные формы встроенной отладки: замедляют ли это основное приложение, насколько близко отлаживаемая система или приложение к реальной системе или приложению, насколько выразительны триггеры, которые можно установить для отладки (например, проверка памяти при достижении определенного значения счетчика программ ), а также то, что можно проверить в процессе отладки (например, только память или память и регистры и т. д.).
От самых простых до самых сложных их можно условно разделить на следующие области:
Отслеживание
Операционные системы реального времени ( RTOS ) часто поддерживают отслеживание событий операционной системы. Графическое представление предоставляется инструментальным средством главного ПК на основе записи поведения системы. Запись трассировки может выполняться программно, с помощью ОСРВ или с помощью специального оборудования для трассировки. Трассировка RTOS позволяет разработчикам понять проблемы синхронизации и производительности программной системы и дает хорошее понимание поведения системы на высоком уровне.
Надежность
Встроенные системы часто находятся в машинах, которые, как ожидается, будут работать непрерывно в течение многих лет без ошибок, а в некоторых случаях восстанавливаются сами по себе в случае возникновения ошибки. Поэтому программное обеспечение обычно разрабатывается и тестируется более тщательно, чем программное обеспечение для персональных компьютеров, и избегаются ненадежные механические движущиеся части, такие как дисководы, переключатели или кнопки.
Конкретные проблемы надежности могут включать:
Высокая или низкая громкость
Встроенные программные архитектуры
В 1978 году Национальная ассоциация производителей электрооборудования выпустила стандарт для программируемых микроконтроллеров, включая практически любые компьютерные контроллеры, такие как одноплатные компьютеры, числовые контроллеры и контроллеры на основе событий.
Сегодня широко используются несколько различных типов программной архитектуры.
Простой контур управления
Система управления прерываниями
Такие системы используются, если обработчикам событий требуется низкая задержка, а обработчики событий короткие и простые. Обычно такие системы также запускают простую задачу в основном цикле, но эта задача не очень чувствительна к неожиданным задержкам.
Иногда обработчик прерывания добавляет более длинные задачи в структуру очереди. Позже, после завершения обработчика прерывания, эти задачи выполняются основным циклом. Этот метод приближает систему к многозадачному ядру с дискретными процессами.
Совместная многозадачность
Преимущества и недостатки аналогичны преимуществам и недостаткам контура управления, за исключением того, что добавить новое программное обеспечение проще, просто написав новую задачу или добавив в очередь.
Вытесняющая многозадачность или многопоточность
В этом типе системы фрагмент кода низкого уровня переключается между задачами или потоками на основе таймера (подключенного к прерыванию). Это уровень, на котором обычно считается, что система имеет ядро «операционной системы». В зависимости от того, сколько функциональных возможностей требуется, он представляет большую или меньшую сложность управления несколькими задачами, которые концептуально выполняются параллельно.
Микроядра и экзоядра
Микроядра является логическим шагом по сравнению с ОС реального времени. Обычно ядро операционной системы выделяет память и переключает ЦП на разные потоки выполнения. Процессы пользовательского режима реализуют основные функции, такие как файловые системы, сетевые интерфейсы и т. Д.
В общем, микроядра успешны, когда переключение задач и межзадачное взаимодействие происходит быстро, и терпят неудачу, когда они медленные.
Экзоядра эффективно взаимодействуют с помощью обычных вызовов подпрограмм. Аппаратное обеспечение и все программное обеспечение в системе доступны и расширяются прикладными программистами.
Монолитные ядра
Дополнительные программные компоненты
Доменно-ориентированные архитектуры
Теория: встраиваемые компьютеры и их модули
В последнее время современная вычислительная техника развивается большими темпами. Еще недавно в этой нише главенствовал процессор Pentium III, затем он ушел со сцены. Благодаря новейшим решениям лидеров отрасли, скажем, встраиваемые компьютеры, при небольших объемах и потребления энергии имеет огромные вычислительные мощности.
В этой статье мы не будет подробно говорить о лидерах в этом сегменте (Intel, AMD, VIA), а не немного углубимся в теорию самих встраиваемых компьютеров и их модулей.
Что главное в выборе встраиваемого компьютера?
Сегодня процессоры производят 3 производителя. Среди них Intel, предлагающий во встраиваемых решениях применять самые популярные модели процессоров, снабженных пассивным охлаждением.
Хотя некоторые компоненты используются давно, их популярность в ВК по-прежнему высока. Они будут еще долго востребованы, так как нашли себе свою нишу на рынке ПК.
А теперь – об архитектуре, применяемой в изготовлении встраиваемых компьютеров. Сегодня в ход идут процессорные платы разных форм-факторов и размеров. Этот формат используют, когда нужно создать ответственные системы, скажем, в авиации, или в промышленности, или на транспорте, иными словами, в тех местах, где есть повышенные требования безопасности и стабильности при малых габаритах.
Любая вычислительная техника, в том числе и встраиваемая, имеет в своем составе модули RAM (оперативная память). Большое достоинство ВК в том, что они используют стандартные методы решения с применением модулей оперативной памяти. Ряд изготовителей встраиваемых плат в свою линейку включили продукцию с уже установленными чипами памяти. А пользователи успели оценить это их решение, ведь встраиваемый компьютер эффективен в условиях повышенной вибрации и тряски. Так как не используются переходные сокеты установки модуля памяти. Сокращается и доля неработоспособности устройств.
Операционная система. Без нее ПК – «железо». Работа встраиваемых компьютеров основана на управлении распространенных операционок, скажем, Windows или Linux. Какую из них выбрать? Это определяет направление работы встраиваемого компьютера. При всем том есть возможность пользоваться специализированными операционными системами, настроенным под ту или иную модель ВК. Часть встраиваемых систем базируется на процессорах малой мощности, а потому работают в среде ОС DOS или ее модификаций.
Кого выбрать из производителей оборудования и ВК? Их с каждым годом становится все больше. На рынке продукцию поставляют и опытные компании, которые имеют имидж надежных партнеров, и те, что молоды, но активны в продвижении своего нового продукта и в применении оригинальных ноу-хау. Выбор есть, главное сделать правильный для вашей ситуации и нужд.
Дата: 02.08.2017 Автор/Переводчик: CompMaster
Встроенный компьютер
Встра́иваемая систе́ма (встро́енная систе́ма, англ. embedded system ) — специализированная микропроцессорная система управления, контроля и мониторинга, концепция разработки которой заключается в том, что такая система будет работать, будучи встроенной непосредственно в устройство, которым она управляет.
Содержание
Особенности
В связи с тем, что система управления будет размещаться внутри более сложного устройства, при её разработке ключевую роль играют следующие факторы:
Основой построения простых встроенных систем часто служат одноплатные (однокристальные) ЭВМ (см.: микроконтроллер), специализированные или универсальные микропроцессоры, ПЛИС.
Широко распространено непосредственное использование или обеспечение значительной степени совместимости с морально устаревшими за долгое время выпуска (десятки лет) устройствами и интерфейсами (например, процессорами семейств Intel 8086, i386, i486, Pentium и их аналогами; шиной ISA и т. п.) из-за низкой стоимости разработки конкретного решения.
Область применения
Областью применения встроенных систем являются:
Безопасность встроенных систем
Некоторые встроенные системы находят массовое применение, например, устройства RFID. Встроенные системы являются привлекательной целью для создателей вредоносного кода из-за своей распространённости и относительной беззащитности. Постепенно злоумышленники пытаются создать вредоносный код для встроенных систем (например, RFID-вирус, Cabir). Этот процесс пока затрудняется разнородностью встроенных устройств, отсутствием доминирующего ПО и ограниченной функциональностью некоторых видов устройств. С другой стороны, задача антивирусных компаний и исследователей компьютерной безопасности осложнена теми же обстоятельствами, а также маломощностью встроенных систем, зачастую не позволяющей пользоваться распространённым антивирусным ПО.
ЦПУ для встраиваемых систем
Центральным процессорным устройством для встраиваемой системы могут служить очень многие из современных микропроцессоров и микроконтроллеров. Конкретный вид определяется при проектировании, исходя из целей и задач, выполняемых встраиваемой системой.
Ведущие фирмы-производители
Список ведущих фирм — производителей микроконтроллеров:
Высокопроизводительные встроенные компьютеры
В переводе термина embedded computer посредством выражения «встроенный компьютер» просматриваются представления об относительно простом компьютере, который используется всего лишь как часть более сложной технической системы. На практике же параметры вычислителя
определяются сложностью управляемого объекта; при определенных условиях встроенный компьютер должен быть чрезвычайно мощным. На такую категорию приложений нацелена новая категория управляющих компьютеров, которая получила название HPEC (High Performance Embedded Computing) по аналогии с HPC (High Performance Computing).
У каждой из трех основных категорий современных компьютеров — универсальных (в основном предназначенных для бизнеса), встроенных (обеспечивающих управление техническими объектами) и суперкомпьютеров (ориентированных на серьезные вычисления) — своя собственная эволюционная история. Все три стартовали практически из одной точки, в последующем траектории развития сходились и расходились, и вот в 2006 году, кажется, наступает момент, когда они снова могут пересечься. Виной тому очередной виток технологий, связанный с появлением серверов-лезвий.
Взлет и падение первого поколения управляющих компьютеров
Если не вступать в схоластические дискуссии, то первыми компьютерами были ENIAC и EDVAC, авторами которых были Преспер Эккерт и Джон Мочли, а первым продуктом образованной ими компании Eckert-Mauchly Computer Corporation стал предшественник управляющих машин, BINAC (1949). Он был построен по заказу Northrop Aircraft и рассматривался как прототип устройства для установки на борт летательного аппарата. На пару лет от BINAC отстал первый коммерческий компьютер, знаменитый UNIVAC I, прародитель мэйнфреймов. В последующем по причине слияний и поглощений ряда компаний многочленные компьютеры с торговой маркой UNIVAC производились в Sperry, Sperry-Rend и Unisys; на их примере несложно проследить судьбу УВМ первого поколения.
Разумеется, не только Eckert-Mauchly и ее наследники развивали управляющие машины. К примеру, самой мощной управляемой системой была SAGE (Semi-Automatic Ground Environment), предназначенная для контроля воздушного пространства США, построенная в IBM.
Когда в 50-х годах в компании UNIVAC под руководством Сеймура Крея, позже прославившегося своими суперкомпьютерами, разрабатывался компьютер для наземной станции управления межконтинентальной ракетой, рассматривалось два варианта: один на магнитных элементах Magnetic Switch Test Computer (MAGTEC), другой на транзисторах. По итогам испытаний предпочтение было отдано компьютеру TRANSTEC как более компактному (занимаемая им площадь составляла 40 квадратных метров, а вес — 10 тонн) и более надежному (наработка на отказ 1000 часов). Сегодня эти цифры вызывают улыбку, но не стоит забывать, что дело было 40 лет назад. Считается, что именно этот компьютер, компенсировавший недостатки ракетоносителей, способствовал сохранению баланса между США и СССР в ракетной гонке. Сегодня один из 23 выпущенных экземпляров TRANSTEC находится в музее Смитсониевского института в Вашингтоне. А на базе MAGTEC по заказу спецслужб Крей спроектировал Bogart (иначе X308); эта машина, названная так по имени знаменитого газетного редактора Джона Богарта, предназначалась для обработки текстов. Позднее полученный опыт Крей использовал при проектировании одного из первых высокопроизводительных компьютеров CDC 1604 (1960).
Но до перехода в Control Data Corporation Крей успел создать еще несколько моделей управляющих машин. Наибольшую известность приобрели AN/USQ-17 (M-460) и бортовой компьютер UNIVAC 1824 для ракеты Titan III (последний был выполнен не по фон-Неймановской схеме: данные и программы хранились в нем в различных фрагментах памяти). Однако дальнейшая специализация на боевых управляющих машинах становилась все менее и менее прибыльной, в то время как объем производства компьютеров для гражданской сферы возрастал геометрически. Избегая банкротства, в Unisys выделили этот бизнес в отдельную компанию Paramax Systems; с окончанием «холодной войны» в 1995 году она была продана и в конечном итоге растворилась в авиакосмической корпорации Lockheed Martin.
Параллельно с Univac-Sperry-Unisys в США работали еще десятки компаний, поставлявших управляющие машины предприятиям энергетики, химической промышленности и других отраслей.
Отечественные УВМ 60-х — 70-х годов
За всю историю отечественной вычислительной техники было выпущено ограниченное количество универсальных ЭВМ; среди них МЭСМ, «Стрела», семейства БЭСМ, «Урал», «Минск», «Наири», «Эльбрус», а также такие малотиражные, как «Проминь», «Сетунь», «Мир», «Раздан» и некоторые другие (их общий выпуск едва ли превышает несколько тысяч единиц). И наоборот, история отечественных УВМ намного богаче, чем история их универсальных собратьев. Как и в США, их создание главным образом стимулировал и финансировал ВПК, а также — в меньшей, но значительной степени — необходимость управления энергетическими объектами и химическими производствами. Свою роль сыграло и то, что на фоне неблагожелательного отношения к кибернетике как науке с далеко идущими социальными выводами процветало направление, получившее название «техническая кибернетика». Десятки НИИ были так или иначе связаны с этой дисциплиной; даже просто перечислить все УВМ той поры очень непросто.
Школой академика Сергея Лебедева в ИТМиВТ, где родилась БЭСМ, была создана линия специализированных ЭВМ, начавшаяся с моделей «Диана-1» и «Диана-2» (1955). За ней последовали ЭВМ М-40 и М-50; на их базе в 60-е и 70-е годы были построены машины 5Э92, 5Э92б, 5Э51, 5Э65, 5Э67. Вершиной этой линейки стала машина 5Э26, представлявшая собой многопроцессорный мобильный управляющий комплекс с высокоэффективной системой автоматического резервирования. В НИИАА разрабатывалась «Тетива» для систем противовоздушной обороны, в МНИИ 1 — машина 5Э89. В Институте кибернетики АН УССР построили «Днепр», первую отечественную цифровую управляющую вычислительную машину широкого назначения на полупроводниковых элементах; ее развитием стала машина «Днепр 2». Во ВНИИЭМ была создана машина М-3 (ее разработчики — Борис Каган и Владимир Долкарт), она послужила основой для «Минска 1», родоначальника будущей серии, а также для ЭВМ «Раздан». Под руководством Долкарта была разработана УВМ ВНИИЭМ-3 и ее модернизация УВМ «В-3М», успешно использовавшиеся для управления объектами ядерной энергетики. НИИУВМ разрабатывал машины МППИ, УМ-1, КВМ-1, а ИНЭУМ — М-4, М-5, М-7.
Относительно простые технологии позволяли строить управляющие машины практически в кустарных условиях. К примеру, автору, работая в ЦНИИКА, пришлось участвовать в разработке системы управления «Комплекс-2» для энергоблока на Змиевской ГРЭС. Машина представляли собой адаптированную к управлению машину «Урал-14». Для того чтобы построить подобную систему, требовалось простое производство, где собирались шкафы и платы, и два десятка инженеров. Но концу 60-х стало понятно, что необходимо переходить к более технологичным управляющим вычислительным комплексам (УВК), которые строились по агрегатному принципу. Примером такого решения стала система АСВТ, предназначенная для многоуровневых АСУТП.
Особое место в истории отечественных УВМ занимает машина УМ1, предназначенная для управления подводными лодками, а также ее «гражданская» версия УМ1-НХ. Они были созданы по инициативе и под управлением Альфреда Саранта и Джоэла Бара, людей со смутным прошлым. Кем на самом деле были те, кого официально называли Ф. Г. Старос и И. В. Берг, вопрос для журналистики иного рода, но, так или иначе, именно они способствовали созданию центра микроэлектроники в Зеленограде. В полном объеме этот период отечественной компьютерной истории нашел свое отражение в воспоминаниях ветеранов, опубликованных в виртуальном музее Эдуарда Пройдакова. Эти воспоминания интересны не только фактами, но и адекватно переданной атмосферой, где наука и техника находились в тесной связи с административно-командной системой.
Мини-ЭВМ для управления
Судьба вновь свела вместе универсальные и управляющие машины в связи с появлением мини-ЭВМ. В 1965 году DEC анонсировала мини-ЭВМ PDP-8, которая стала основой для систем управления на долгие годы во многих странах. Историческое значение PDP-8 заключается в том, что в этой машине — несмотря на всю ее «примитивность» — обнаруживаются основные архитектурные принципы современных компьютеров (прежде всего организация системы прерываний и ввода/ввода, наличие операционной системы и средств разработки). Компьютер выпускался более двух десятилетий, прошел десятки модификаций, его технологии менялись от навесного монтажа до микропроцессорного исполнения. До появления Apple II компьютер PDP-8 оставался самым продаваемым в мире. С PDP-8 началось широкомасштабное клонирование, предполагавшее использование лицензионного или пиратского программного обеспечения. Официальными клонами были DCC-112 (Digital Computer Controls), MP-12 (Fabritek) и многие другие; последний клон, SBC-8 (CESI), был выпущена в 1988 году. Пиратский клон в Венгрии назывался TPA1001, в СССР — «Электроника 100» (выпушена к столетию Ленина); выпускались клоны и под другими названиями, например, в Центральный НИИ измерительной аппаратуры из Саратова под именем «Саратов-2» (кстати, точно так же назывался и популярный домашний холодильник того времени).
Автору пришлось поработать с MP-12, входившей в состав комплекса бортового аэрогеофизического оборудования, что дает ему основание на личном опыте засвидетельствовать высочайшее качество и надежность этой аппаратуры. Но программное обеспечение и ограниченная адресация (12 разрядов) не позволяли использовать как универсальную машину. Это ограничение было преодолено с появлением PDP-11; этот компьютер — особенно в старших моделях (например, PDP-11/70) — мог с равным успехом использоваться и в роли управляющей машины, и в роли машины для счета. Тому способствовал мощный процессор, хороший набор периферии и операционные системы, прежде всего ОС RSX-11/М, которая поддерживала работу и в режиме реального, и в режиме разделения времени. Различные модификации PDP-11 воспроизводились под названиями СМ-3, СМ-4, СМ-1410/1420/25/1300. Мини-ЭВМ от Hewlett-Packard, HP-2000, которая могла использоваться как универсальная и управляющая, также копировалась в СССР; существовали версии СМ-1, СМ-2 и СМ-1210.
Микроконтроллеры
Подлинная революция встроенных систем началась с создания бортового навигационного компьютера Apollo Guidance Computer (AGC) для управления полетами на Луну. Каждый космический корабль имел по два таких компьютера, один устанавливался на спускаемом аппарате, другой — на орбитальном модуле. Программа Apollo была задумана как средство для создания технологий двойного назначения; встроенные компьютеры наряду с цифровыми часами стали одним из ее следствий. AGC разрабатывался в Инструментальной лаборатории Массачусетского технологического института под руководством Чарльза Драпера.
Драпера, основавшего эту лабораторию, называют отцом инерционных навигационных систем. Аппаратура AGC была изготовлена компанией Raytheon, являющейся одним из основных поставщиков высоких технологий для Пентагона. Для сравнения с компьютерными компаниями можно привести цифры, характеризующие ее нынешнее положение: штат — 80 тыс., оборот — 22 млрд. долл.
А массовое производство встроенных систем началось с компьютера D-17, предназначенного для установки на ракете Minuteman. В первых версиях он собирался из дискретных транзисторов навесным монтажом, а в 1966 году был выпущен на интегрированных микросхемах, что стало первым прецедентом широкого использования микросхем. Сокращение цены с 1 тыс. долл. до 3 долл. открыло возможность для коммерческого использования микросхем.
Микроконтроллер обычно определяют как «компьютер на кристалле». Другими словами, это микропроцессор, содержащий в себе все необходимые для компьютера компоненты:
Существенную часть общего числа выпускаемых микроконтроллеров составляют специализированные сигнальные процессоры (Digital Signal Processor, DSP), предназначенные, как следует из названия, для цифровой обработки сигналов, поступающих от объектов управления.
Под встроенными системами понимают такие системы специального назначения, где компьютер встроен в устройство, которым он управляет. В отличие от универсального компьютера, компьютер встроенный способен решать заранее предопределенные и запрограммированные задачи. Специализация предполагает адаптацию к условиям и оптимизацию размеров, стоимости и других показателей.
Конвергенция HPEC и HPC
Компьютерные системы все больше сближаются с реальной жизнью — в том смысле, что объектами управления становятся не искусственно созданные технические сооружения, а события бесконечно многообразной естественной среды. Появляются все новые и новые приложения встроенных систем, например, такие как обработка аудио- и видеосигналов в режиме реального времени, комплексная обработка сигналов, поступающих от множества перемещающихся объектов и т.п. Эти приложения возникают в самых разных сферах — от управления движением гражданских воздушных судов до оперативного управления боем, в котором участвует компьютеризованная техника и военнослужащие, оснащенные мобильными устройствами. Современные приложения вызвали к жизни очередную волну встроенных систем, которая получила название высокопроизводительные встроенные компьютерные системы (High Performance Embedded Computing, HPEC).
С технической точки зрения для решения перечисленных задач помимо специализированных сигнальных процессоров требуются еще и многоядерные многопотоковые встроенные процессоры, параллельные многопроцессорные системы и программное обеспечение, поддерживающее grid-среды и кластеры. Обнаруживается очевидная родственность HPEC и традиционных высокопроизводительных вычислений. Все выглядит почти одинаково, за одним-единственным исключением: основной компонент стратегии HPC (High Performance Computing) состоит в приспособлении алгоритмов к аппаратному обеспечению, а в HPEC аппаратное обеспечение адаптируется к алгоритмам. Но несмотря на это различие, как когда-то в 70-е годы, снова происходит сближение технологий для встроенных и универсальных систем.
И точно так же, как тогда, в центре событий Линкольновская лаборатория МТИ и один из ее сотрудников, Джереми Кепнер. Пять лет назад он сделал прогноз, который, как показывают последние события, начинает сбываться. Успешность подобной конвергенции он поставил в зависимость от способности двух сообществ инженеров понять друг друга. На протяжении нескольких десятков лет они шли разными путями. Те, кто строит HPC, вышли из серверного сообщества, внимание которого в основном сконцентрировано на корпоративных приложениях и электронной коммерции. Авторы HPEC пришли из мира встроенных систем, где в фокусе данные, поступающие в реальном времени от датчиков и разного рода коммуникационных систем. Этим двум группам специалистов нужно осознать взаимные выгоды сотрудничества. Конвергенции способствуют и современные технологические тенденции, прежде всего появление инструментов высокого уровня, в том числе компиляторов C++, ориентация на открытые стандарты (MPI, CORBA и VSIPL), а главное, появление сверхтонких серверов. Все это уже спустя пять лет спустя приведет к тому, что конвергенция HPC/HPEC станет реальностью. (Заметим, это предположение было высказано в 2001 году, когда о таких вещах, как серверы-лезвия, можно было только догадываться.)
Но между представителями двух разных групп остаются и труднопреодолимые различия. В бизнес-приложениях доминируют целочисленные операции, поэтому совершенствование процессоров в значительной мере направлено на их ускорение, в то время как в HPEC больше востребованы 64-разрядные операции с плавающей точкой. Разнятся и представления о данных; в HPC данные обычно представляют собой статические массивы, размещенные на диске, а в HPEC доминируют недетерминированные потоки данных. (Заметим, впрочем, что в последнее время, особенно с распространением систем радиочастотной идентификации, проблемы обработки потоков данных становятся актуальными и в бизнес-приложениях.)
Подобного рода противоречия не могут быть преодолены в обозримом будущем. Кроме того, надолго останется еще одно противоречие — скорость обновления информационных технологий во много раз выше, чем скорость обновления систем вооружения, являющихся потребителями ИТ (ракеты и самолеты стоят на вооружении десятки лет). Компромисс может быть найден на пути создания программного обеспечения, независимого от аппаратного обеспечения. По заказу агентства DARPA Линкольновская лаборатория МТИ и корпорация MITRE, контролирующая ведущиеся в США исследовательские работы оборонного характера, с 2000 года разрабатывают программу HPEC-SI (High Performance Embedded Computing Software Initiative).
Традиционные технологии HPC для HPEC
Одной из первых задач, стимулировавших появление встроенных систем нового поколения, стало задание Министерства обороны США на разработку комплексной систем обработки изображений Common Imagery Ground/Surface System (CIGSS). Задание, сформулированное в 1994 году, предполагало сведение воедино изображений, получаемых с помощью самых разных систем наблюдения, от спутниковых до наземных радаров.
Ключевыми компонентами CIGSS должны были стать универсальный процессор обработки изображений Common Imagery Processor (CIP), архиватор Image Product Archive (IPA) и инструмент для работы с изображениями National Input Segment (NIS). На тот момент единственно возможное решение сводилось к адаптации проверенных решений HPC к задачам HPEC. Для этого требовалось преодолеть те специфические особенности высокопроизводительных компьютеров, которые препятствуют их использованию во встроенных приложениях. К таковым, прежде всего, относятся большие габариты и недостаточно прочное конструктивное исполнение, высокое энергопотребление, слабость традиционных операционных систем при работе в режиме реального времени.
В середине 90-х годов, когда эти работы начались, казалось, что решение проблем состоит в создании гетерогенных систем, состоящих из реконфигурируемых вычислительных модулей и модулей ввода/вывода, построенных на основе программируемых логических матриц (FPGA), в сочетании с разработками, которые велись по программе DARPA High Productivity Computer System.
Одним из контакторов DARPA стала компания SGI, известная успешным использованием архитектуры ccNUMA (cache coherent Non-Uniform Memory Architecture) в высокопроизводительных компьютерах Origin и Altix. Помимо отмеченных проблем, связанных с универсальными высокопроизводительными компьютерами, при создании CIP на основе компьютеров Origin и Altix необходимо было также приспособить их для работы с потоками данных, поступающих в реальном времени.
В SGI за основу была избрана система внутренней коммутации, обеспечивающая обмен данными со скоростью от 3,2 до 10 Гбайт/с. К ней подключаются вычислительные модули ccNUMA и специализированные модули на FPG A, выполненные в конструктивном исполнении, получившем название «лезвие» (blade). Специализированные модули осуществляют обработку сигналов, операции ввода/вывода, отдельные операции, связанные с обработкой изображений. Заметим, что термин «лезвие» не привязан исключительно к серверам; с подачи маркетологов его стали использовать для обозначения конструктивного исполнения плат во встроенных системах — по аналогии с тем, как его используют при описании сменных компонентов в кухонной утвари.
Понятно, что при решении такой уникальной по сложности задачи, какой является создание CIGSS, «проприетарный» подход, избранный SGI, был вполне оправдан. Точно так же понятно, что он является чрезвычайно дорогостоящим и не может быть речи о тиражировании, хотя бы в ограниченном масштабе. Однако буквально через несколько лет после старта программы CIGSS появились технологии, которые позволяют строить не менее сложные системы, но на основе открытых стандартов; это, прежде всего, серверы-лезвия и технология системной коммутации InfiniBand.
Новые технологические тенденции HPEC
Можно отметить две основные тенденции, влияющие на формирование современного образа HPEC. Первая — переход к интеграции систем из крупных компонентов, в основном из серверов-лезвий. Вторая — сдвиг к открытым стандартным решениям. Обе эти тенденции поддерживаются технологиями, которые постепенно занимают позиции отраслевых стандартов. Так, стандартной операционной системой для HPEC становится ОС Linux, а в области межмодульных коммуникаций приоритетное место занимает InfiniBand.
И серверы-лезвия, и InfiniBand — еще очень молодые технологии, им всего по пять лет. Напомним, в марте 2001 года компания RLX Technologies, основанная выходцами из Compaq и позже купленная HP, впервые предложила рынку компактные серверы, которые позже стали называть серверами-лезвиями. Наличие небольшого диска и флэш-памяти позволяет комплектовать каждый сервер собственной операционной системой и строить из них большие кластерные конфигурации. Сегодня эта категория компьютеров образует самый быстрорастущий сегмент серверного рынка.
Открытые стандарты, возможность использования многоядерных процессоров, возможность расширять функциональность при подключении периферийных устройств по шине PCI, низкое энергопотребление, новые технологии охлаждения — все это в сочетании с технологиями виртуализации позволяет рассматривать серверы-лезвия как основу для построения систем HPC/HPEC.
Открытость стандартов обеспечивает открытость рынка для всех его участников, что в конечном итоге способствует снижению стоимости решений; в этом состоит одно из основных преимуществ перед частными специализированными решениями. К примеру, возможность подключения периферии по высокопроизводительной шине PCI-X сейчас и по PCI-X 2.0 в ближайшем будущем позволяет обмениваться данными со скоростью в диапазоне от 1,06 Гбайт/с до 4,3 Гбайт/с. Это дает возможность подключать непосредственно к серверу мощные графические платы и платы, предназначенные для оцифровки изображений. Совместно они позволяют решать задачи машинного зрения и обработки изображений.
Что касается InfiniBand, то здесь разворачивается процесс сродни тому, который наблюдался 10-15 лет тому назад в области локальных сетей. Для унификации сетевых решений желательно иметь как можно меньше сетевых протоколов. В результате своего рода эволюционного отбора из группы альтернативных стандартов, включавшей Arcnet, Token Ring и Ethenet, остался только последний. Он в чем-то уступал другим, но его достоинство состояло в том, что он принят всеми. И сегодня InfiniBand — один из главных претендентов на роль такого же избранника.
С точки зрения HPEC стандарт InfiniBand обладает рядом решающих преимуществ.
Применение технологий InfiniBand и серверов-лезвий в HPEC наглядно демонстрирует скорость эволюционных процессов в современной компьютерной индустрии. Четыре года назад можно было только догадываться о возможных перспективах, а сегодня они превратились в реальность. На нынешнем этапе создание мощных систем HPEC финансируется государствами, и не исключено, что они в очередной раз станут локомотивами для развития систем гражданского назначения.