Найти в Дзене
Tech-Ind

Развитие российской микроэлектроники на примере АО «МЦСТ» и микропроцессоров «Эльбрус». Часть 2.

Оглавление
Всем привет! Перед вами вторая часть моего небольшого своеобразного исследования. Надеюсь, что прочитанная вами информация будет для вас хоть немного полезной!

Внимание! Данная статья содержит исторические сведения, взятые из открытых интернет-источников, цитаты из различных новостных изданий, а также личное мнение автора, которое может не совпадать с вашим.

Перед прочтением этой части рекомендую ознакомиться с первой.

Архитектура «Эльбрус-1,2».

Основным отличием системы «Эльбрус» является ориентация на языки высокого уровня 1980-х годов. Языки класса Ассемблера в системе отсутствуют. Базовый язык — Автокод «Эльбрус» Эль-76 (автор - Владимир Мстиславович Пентковский), на котором написано общесистемное программное обеспечение (ОСПО), является языком класса Алгол. Он напоминает язык Алгол-68. Основное различие состоит в динамическом связывании типов, которое поддерживается на аппаратном уровне. При компиляции программа на Эль-76 переводилась в безоперандные команды стековой архитектуры.

Владимир Мстиславович Пентковский.
Владимир Мстиславович Пентковский.

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

Очень похожие принципы: Алгол как управляющий язык и система тегов применялись в компьютере B5000 фирмы Burroughs Corporation.

Элементарные типы данных:

• целые числа двух форматов — слово (64 разряда) и полуслово (32 разряда);

• вещественные числа трех форматов — слово, полуслово и удвоенное слово (128 разрядов);

• наборы — обобщение языковых типов данных bool (логический), char (символьный), alfa (короткая строка, размещаемая в слове), bytes (последовательность байтов слова).

В аппаратуре и ОС реализован гибкий механизм управления виртуальной памятью (называющейся в документации «математической»). Программисту предоставляется возможность описывать массивы размерами до 220 элементов. Разрешённые форматы элементов массива: бит, цифра (4 бита), байт, полуслово (32 бита), слово (64 бита), слово удвоенной точности (128 бит). Каждой задаче предоставляется 232 слов.

Программное обеспечение:

• Операционная система, система файлов, система программирования Эль-76, многоязыковые компоненты ОСПО — ИТМиВТ;

• Фортран, Кобол, ПЛ/1, Алгол — Новосибирский филиал ИТМиВТ (ныне ОАО «Новосибирский институт программных систем»);

• Паскаль, КЛУ, АБВ, РЕФАЛ, Снобол-4, Диашаг, Форт — Ленинградский университет, 1986 г. (Работает под управлением ОСПО. Имеются средства связи с процедурами на Эль-76);

• Интеллектуальная система программирования МИС, Лисп — Институт кибернетики АН СССР;

• Симула-67 — Ростовский университет.

Архитектура «Эльбрус».

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

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

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

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

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

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

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

· 6 каналов арифметико-логических устройств (АЛУ), работающих параллельно;

· Регистровый файл из 256 84-разрядных регистров;

· Аппаратная поддержка циклов, в том числе с конвейеризацией. Повышает эффективность использования ресурсов процессора;

· Программируемое асинхронное устройство предварительной подкачки данных с отдельными каналами считывания. Позволяет скрыть задержки от доступа к памяти и полнее использовать АЛУ;

· Поддержка спекулятивных вычислений и однобитовых предикатов. Позволяет уменьшить число переходов и параллельно исполнять несколько ветвей программы;

· Широкая команда, способная при максимальном заполнении задать в одном такте до 23 операций (более 33 операций при упаковке операндов в векторные команды).

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

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

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

Что из себя представляет акционерное общество «МЦСТ»?

АО «МЦСТ» (первоначально Московский центр SPARC-технологий) — это российская частная компания, специализирующаяся на разработке: универсальных микропроцессоров; микроконтроллеров; управляющих вычислительных комплексов; оптимизирующих и двоичных компиляторов и операционных систем.

«МЦСТ» ведет свою деятельность с 1992 года на базе отделений Института точной механики и вычислительной техники имени С.А.Лебедева. С 2006 года к выполнению проектов «МЦСТ» присоединился коллектив ПАО «ИНЭУМ им. И. С. Брука», имеющий многолетний опыт в создании отечественных электронных управляющих машин.

Основателем АО «МЦСТ» является Борис Арташесович Бабаян - советский и российский учёный, педагог, разработчик вычислительной техники, член-корреспондент АН СССР (1984; с 1991 года — Российской академии наук); автор трудов по архитектурным принципам построения вычислительных комплексов, компьютерного программного обеспечения; лауреат Государственной (1974) и Ленинской (1987) премий; первый европейский учёный, удостоенный звания «Заслуженный исследователь Intel».

Генеральным директором компании является Александр Киирович Ким — советский и российский учёный, специалист в области разработки вычислительной техники, кандидат технических наук.

Александр Киирович Ким.
Александр Киирович Ким.

Главное здание компании располагается по адресу: Нагатинская улица, 1, стр. 23, Москва.

Профиль АО «МЦСТ».

Основная деятельность компании сосредоточена в следующих областях компьютерных технологий:

· исследование и разработка архитектуры микропроцессоров;

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

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

· проектирование компьютерных модулей и логических устройств;

· проектирование высокоэффективных оптимизирующих компиляторов;

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

· развитие возможностей операционных систем, в том числе операционных систем реального времени;

· создание, развитие возможностей и сопровождение операционных систем с интерфейсом Unix (POSIX).

Вот и подошла к концу вторая часть моего исследования, посвящённого теме российских процессоров "Эльбрус" и АО "МЦСТ". Надеюсь, что вам было действительно интересно читать данную статью. Если это так, то поддержите меня, написав комментарий, поставив оценку "Нравится" и подписавшись на мой канал. Скоро выйдет последняя часть, заключительная, которая будет не менее познавательной!

Первая часть.