Система эльбрус

Краткое описание архитектуры Эльбрус

Работы над архитектурой «Эльбрус» начались в 1986 г. в коллективе Института точной механики и вычислительной техники (ИТМ и ВТ) им. С.А. Лебедева, в котором до этого были созданы советские высокопроизводительные комплексы «Эльбрус-1» и «Эльбрус-2». Разработка вычислительного комплекса «Эльбрус-3», которая велась под руководством Б.А. Бабаяна, была завершена в 1991 г. В этом вычислительном комплексе впервые были воплощены в жизнь идеи явного управления параллелизмом операций с помощью компилятора.

Начавшиеся с 1992 г. экономические изменения в России не позволили разработчикам «Эльбруса-3» завершить наладку комплекса. В том же 1992 г. коллектив разработчиков машин семейства «Эльбрус» выделился в компанию ЗАО «МЦСТ» и начал вести работы над микропроцессорной реализацией архитектуры «Эльбрус».

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

Ключевые особенности архитектуры Эльбрус

В традиционных архитектурах типа RISC или CISC (х86, PowerPC, SPARC, MIPS, ARM), на вход процессора поступает поток инструкций, которые рассчитаны на последовательное исполнение. Процессор может детектировать независимые операции и запускать их параллельно (суперскалярность) и даже менять их порядок (внеочередное исполнение). Однако динамический анализ зависимостей и поддержка внеочередного исполнения имеет свои ограничения: лучшие современные процессоры способны анализировать и запускать до 4-х команд за такт. Кроме того, соответствующие блоки внутри процессора потребляют заметное количество энергии.

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

Компилятор способен анализировать исходный код гораздо тщательнее, чем аппаратура RISC/CISC процессора, и находить больше независимых операций. Поэтому в архитектуре Эльбрус больше параллельно работающих исполнительных устройств, чем в традиционных архитектурах, и на многих алгоритмах она демонстрирует непревзойденную архитектурную скорость.

Возможности архитектуры Эльбрус:

  • 6 каналов арифметико-логических устройств (АЛУ), работающих параллельно.
  • Регистровый файл из 256 84-разрядных регистров.
  • Аппаратная поддержка циклов, в том числе с конвейеризацией. Повышает эффективность использования ресурсов процессора.
  • Программируемое асинхронное устройство предварительной подкачки данных с отдельными каналами считывания. Позволяет скрыть задержки от доступа к памяти и полнее использовать АЛУ.
  • Поддержка спекулятивных вычислений и однобитовых предикатов. Позволяет уменьшить число переходов и параллельно исполнять несколько ветвей программы.
  • Широкая команда, способная при максимальном заполнении задать в одном такте до 23 операций (более 33 операций при упаковке операндов в векторные команды).

Производительность на реальных задачах:

Ниже приведена производительность процессора Эльбрус-2С+ на задачах из пакета SPEC2000 по сравнению с процессорами Intel Pentium-M ULV (1ГГц, кэш-память 1М, 2хDDR-266) и Intel Atom D510 (1,66 ГГц, кэш-память 1М, DDR2-800).

Данные для Intel Pentium-M ULV получены с сайта spec.org, компилятор ICC 9.1. Для замера производительности процессора Intel Atom D510 использовалась собственная сборка тестов SPEC силами сотрудников МЦСТ.

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

Эмуляция архитектуры х86

Еще на этапе проектирования МП Эльбрус у разработчиков было понимание важности поддержки программного обеспечения, написанного для архитектуры Intel х86. Для этого была реализована система динамической (т.е. в процессе исполнения программы, или «на лету») трансляции двоичных кодов х86 в коды процессора Эльбрус. Фактически, система двоичной трансляции создает виртуальную машину, в которой работает гостевая ОС для архитектуры х86. Благодаря нескольким уровням оптимизации удается достичь высокой скорости работы оттранслированного кода (см. диаграммы выше). Качество эмуляции архитектуры х86 подтверждается успешным запуском на платформе Эльбрус более 20 операционных систем (в том числе несколько версий Windows) и сотен приложений.

Защищенный режим исполнения программ

Одна из самых интересных идей, унаследованных от архитектур Эльбрус-1 и Эльбрус-2 – это так называемое защищенное исполнение программ. Его суть заключается в том, чтобы гарантировать работу программы только с инициализированными данными, проверять все обращения в память на принадлежность к допустимому диапазону адресов, обеспечивать межмодульную защиту (например, защищать вызывающую программу от ошибки в библиотеке). Все эти проверки осуществляются аппаратно. Для защищенного режима имеется полноценный компилятор С/С++ и библиотека run-time поддержки.

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

Сфера применения микропроцессоров архитектуры Эльбрус
Расширенный температурный диапазон, возможность локализации производства Государственный заказ, промышленные компьютеры, автомобильная электроника

Повышенная защищенность от вирусных атак

Платежные терминалы, сетевые экраны, взломоустойчивые серверы
Высокая производительность на криптографических алгоритмах Модули шифрования, защищенные тонкие клиенты, прочие системы безопасности
Высокая производительность на вычислениях с действительными числами (float, double) Робототехника, авионика, промышленные контроллеры, системы обработки изображений, суперкомпьютеры
Работа под управлением бинарного компилятора в режиме совместимости с архитектурой х86 Интернет-терминалы, маломощные рабочие станции, малогабаритные настольные и встраиваемые компьютеры
Защищенный режим Особо ответственные системы, отладочные стенды

Любое упоминание зарегистрированных торговых марок производится только для целей идентификации. Вышеупомянутые зарегистрированные торговые марки являются собственностью соответствующих частных владельцев и корпораций.

Краткий обзор прикладного программного обеспечения

Классификация программного обеспечения

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

Различают системное и прикладное ПО. Схематически программное обеспечение можно представить так:

Системное ПО – это совокупность программ для обеспечения работы компьютера. Системное ПО подразделяется на базовое и сервисное. Системные программы предназначены для управления работой вычислительной системы, выполняют различные вспомогательные функции (копирования, выдачи справок, тестирования, форматирования и т. д.).

Базовое ПО включает в себя:

· операционные системы;

· оболочки;

· сетевые операционные системы.

Сервисное ПО включает в себя программы (утилиты):

· диагностики;

· антивирусные;

· обслуживания носителей;

· архивирования;

· обслуживания сети.

Прикладное ПО – это комплекс программ для решения задач определённого класса конкретной предметной области. Прикладное ПО работает только при наличии системного ПО.

Прикладные программы называют приложениями. Они включает в себя:

· текстовые процессоры;

· табличные процессоры;

· базы данных;

· интегрированные пакеты;

· системы иллюстративной и деловой графики (графические процессоры);

· экспертные системы;

· обучающие программы;

· программы математических расчетов, моделирования и анализа;

· игры;

· коммуникационные программы.

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

· трансляторы;

· среду разработки программ;

· библиотеки справочных программ (функций, процедур);

· отладчики;

· редакторы связей и др.

Рассмотрим наиболее часто встречающееся прикладное ПО.

Редакторы документов – это наиболее широко используемый вид прикладных программ. Они позволяют подготавливать документы гораздо быстрее и удобнее, чем с помощью пишущей машинки. Редакторы документов позволяют использовать различные шрифты символов, абзацы произвольной формы, автоматически переносят слова на новую строку, позволяют делать сноски, включать рисунки, автоматически нумеруют страницы и сноски и т.д. Представители редакторов документов – программы Microsoft Word, Wordpad.

Табличные процессоры. При работе с табличным процессором на экран выводится прямоугольная таблица, в клетках которой могут находиться числа, пояснительные тексты и формулы для расчета значения в клетке по именующимся данным. Все распространенные табличные процессоры позволяют вычислять значения элементов таблиц по заданным формулам, строить по данным в таблицах различные графики и т.д. Представители семейства табличных процессоров Microsoft Excel, Quatro Pro.

Графические редакторы позволяют создавать и редактировать рисунки. В простейших редакторах предоставляются возможности рисования линий, кривых, раскраски областей экрана, создание надписей различными шрифтами и т.д. Большинство редакторов позволяют обрабатывать изображения, полученные с помощью сканеров. Представители графических редакторов – программы Adobe Photoshop, Corel Draw.

Правовые базы данных содержат тексты нормативных документов и предоставляют возможности справки, контекстного поиска, распечатки и т.д. Представители правовых баз данных – пакеты Гарант и Консультант+ .

Системы автоматизированного проектирования (САПР) позволяют осуществлять черчение и конструирование различных предметов и механизмов с помощью компьютера. Среди систем малого и среднего класса в мире наиболее популярна система AutoCad фирмы AutoDesk. Отечественный пакет с аналогичными функциями – Компас.

Системы управления базами данных (СУБД) позволяют управлять большими информационными массивами — базами данных. Программные системы этого вида позволяют обрабатывать на компьютере массивы информации, обеспечивают ввод, поиск, сортировку выборку записей, составление отчетов и т.д. Представители данного класса программ – Microsoft Access, Clipper, Paradox.

Интегрированные системы сочетают в себе возможность системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности. Как правило, все компоненты интегрированной системы имеют схожий интерфейс, что облегчает обучение работе с ними. Представители интегрированных систем – пакет Microsoft Office и его бесплатный аналог Open Office.

Бухгалтерские программы предназначены для ведения бухгалтерского учета, подготовки финансовой отчетности и финансового анализа деятельности предприятий. Из-за несовместимости отечественного бухгалтерского учета с зарубежным в нашей стране используются почти исключительно отечественные бухгалтерские программы. Наиболее распространены системы 1C: Предприятие и Инфо-бухгалтер.

Adobe Photoshop CS5

Adobe Photoshop CS5 — графический редактор, разработанный и распространяемый фирмой Adobe Systems (Рис. 2.7) . Этот продукт является лидером рынка в области коммерческих средств редактирования растровых изображений, и наиболее известным продуктом фирмы Adobe. Часто эту программу называют просто Photoshop (Фотошоп). В настоящее время Photoshop доступен на платформах Mac OS X/Mac OS и Microsoft Windows. Ранние версии редактора были портированы под SGI IRIX, но официальная поддержка была прекращена, начиная с третьей версии продукта. Для версии CS 2 возможен запуск под Linux с помощью альтернативы Windows API — Wine 0.9.54 и выше.

Особенности

Несмотря на то, что изначально программа была разработана как редактор изображений для полиграфии, в данное время она широко используется и в веб-дизайне. В более ранней версии была включена специальная программа для этих целей — Adobe ImageReady, которая была исключена из версии CS3 за счёт интеграции её функций в сам Photoshop, а также включения в линейку программных продуктов Adobe Fireworks, перешедшего в собственность Adobe после приобретения компании Macromedia.

Photoshop тесно связан с другими программами для обработки медиафайлов, анимации и другого творчества. Совместно с такими программами, как Adobe ImageReady (программа упразднена в версии CS3), Adobe Illustrator, Adobe Premiere, Adobe After Effects и Adobe Encore DVD, он может использоваться для создания профессиональных DVD, обеспечивает средства нелинейного монтажа и создания таких спецэффектов, как фоны, текстуры и т. д. для телевидения, кинематографа и всемирной паутины. Основной формат Photoshop, PSD, может быть экспортирован и импортирован всеми программными продуктами, перечисленными выше. Photoshop CS поддерживает создание меню для DVD. Совместно с Adobe Encore DVD, Photoshop позволяет создавать меню или кнопки DVD. Photoshop CS3 в версии Extended поддерживает также работу с трёхмерными слоями.

Из-за высокой популярности Photoshop поддержка специфического для неё формата PSD была реализована во многих графических программах, таких как Macromedia Fireworks, Corel PHOTO-PAINT, Pixel image editor, WinImages, GIMP, Jasc Paintshop Pro и т. д.

Photoshop поддерживает следующие цветовые модели или способы описания цветов изображения (в нотации самой программы — режим изображения):

· RGB

· LAB

· CMYK

· Grayscale

· Bitmap

· Duotone

· Indexed

· Multichannel

Поддерживается обработка изображений, как с традиционной глубиной цвета 8 бит (256 градаций на один канал), так и с повышенной 16 и 32 бит (65’536 и 4’294’967’296 градаций на канал соответственно). Возможно сохранение в файле дополнительных элементов, как то: направляющих (Guide), каналов (например, канала прозрачности — Alpha channel), путей обтравки (Clipping path), слоёв, содержащих векторные и текстовые объекты. Файл может включать цветовые профили (ICC), функции преобразования цвета (transfer functions), пропорции пиксела (Pixel Aspect Ratio).

Расширенные функции программы

Расширенная версия программы Adobe Photoshop Extended предназначена для более профессионального использования, а именно — при создании фильмов, видео, мультимедийных проектов, трехмерного графического дизайна и веб-дизайна, для работы в областях производства, медицины, архитектуры, при проведении научных исследований. В программе Adobe Photoshop Extended современных версий (CS4, CS5) можно открывать и работать с 3D-файлами, создаваемыми такими программами, как Adobe Acrobat 3D, 3ds Max, Maya и Google Earth. Photoshop поддерживает следующие форматы файлов 3D: U3D, 3DS, OBJ, KMZ и DAE. Возможно использовать трехмерные файлы для внедрения в двумерное фото. Доступны некоторые операции для обработки 3D-модели как работа с каркасами, выбор материалов из текстурных карт, настройка света. Также можно создавать надписи на 3D-объекте, вращать модели, изменять их размер и положение в пространстве. Программа включает в себя также команды по преобразованию плоских фотографий в трехмерные объекты определенной формы, такие как, например, банка, пирамида, цилиндр, сфер, конус и др.

Для имитации движения в Photoshop можно создавать кадры мультипликации, используя слои изображения. Можно создавать видеоизображения, основанные на одной из многих заданных пиксельных пропорций. После редактирования можно сохранить свою работу в виде файла GIF-анимации или PSD, который в последствии можно проиграть во многих видеопрограммах, таких как Adobe Premiere Pro или Adobe Effects. Доступно открытие или импортирование видеофайлов и последовательности изображений для редактирования и ретуширования, создание видеоряда мультипликации и экспорт работ в файл формата QuickTime, GIF-анимацию или последовательность изображений. Видеокадры можно отдельно редактировать, трансформировать, клонировать, применять к ним маски, фильтры, разные способы наложения пикселов, на них можно рисовать, используя различные инструменты.(Рис. 2.8)

Photoshop поддерживает файлы DICOM (Digital Imaging and Communications in Medicine) — цифровые изображения и коммуникации в медицине. Для открытого в Photoshop DICOM-файла, можно использовать любой инструмент Photoshop для коррекции и ретуширования изображений.

И наконец, с помощью программы Photoshop Extended можно рассматривать MATLAB-изображения, обрабатывать их в программе Photoshop, комбинировать команды MATLAB с технологиями обработки изображений Photoshop. Как только устанавливается соединение с программой Photoshop из программы MATLAB и осуществляется ввод команд в командную строку MATLAB, эти управляющие воздействия незамедлительно выполняются в Photoshop. Файлы, подготовленные в программе MATLAB, имеют расширение m, fig, rpt, mat, mdl. Коммуникация между Photoshop и MATLAB использует интерфейс Photoshop JavaScript и библиотечный интерфейс MATLAB.

Рисунок 2.7 Рабочее окно Photoshop

Рисунок 2.8 Панель инструментов Photoshop