Научная статья на тему 'Российские технологии «Эльбрус» для персональных компьютеров, серверов и суперкомпьютеров'

Российские технологии «Эльбрус» для персональных компьютеров, серверов и суперкомпьютеров Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
385
63
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АРХИТЕКТУРА МИКРОПРОЦЕССОРА / ПАРАЛЛЕЛИЗМ / ДИНАМИЧЕСКАЯ КОМПИЛЯЦИЯ / СОВМЕСТИМОСТЬ / ЗАЩИЩЕННОЕ ИСПОЛНЕНИЕ / КОНТРОЛЛЕР ПЕРИФЕРИЙНЫХ ИНТЕРФЕЙСОВ / ОПЕРАЦИОННАЯ СИСТЕМА / ОПТИМИЗИРУЮЩИЙ КОМПИЛЯТОР

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ким Александр Киирович, Бычков Игнат Николаевич, Волконский Владимир Юрьевич, Воробушков Василий Владимирович, Груздов Федор Анатольевич

Технологии и возможности российских микропроцессоров с архитектурой «Эльбрус» рассматриваются в контексте современных тенденций развития ИТиндустрии: экспоненциального роста транзисторов в микропроцессорах и экспоненциального роста объемов и сложности программного обеспечения. Широкое использование различных видов параллелизма на базе интегрального аппаратно-программного подхода технологии явного параллелизма на уровне операций и мощного оптимизирующего компилятора позволяет достигать высокой производительности вычислений при экономном энергопотреблении. Аппаратно-программная технология поддержки совместимости с самой распространенной архитектурной платформой x86, x86-64 на базе динамической компиляции и оптимизации позволяет эффективно исполнять программы, работающие на персональных компьютерах. Не имеющая аналогов в мире аппаратно-программная технология защищенного исполнения программ позволяет существенно повысить надежность программного обеспечения и предотвратить угрозы различных кибератак. Приводится дорожная карта развития микропроцессорной линии «Эльбрус» и ее программного обеспечения, существующая практика и перспективы их использования в российских персональных компьютерах, серверах и суперкомпьютерах.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ким Александр Киирович, Бычков Игнат Николаевич, Волконский Владимир Юрьевич, Воробушков Василий Владимирович, Груздов Федор Анатольевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Российские технологии «Эльбрус» для персональных компьютеров, серверов и суперкомпьютеров»

Ким А.К.1, Бычков И.Н.2, Волконский В.Ю.3, Воробушков В.В.4, Груздов Ф.А.5, Михайлов М.С.6, Нейман-заде М.И.7, Парахин Ю.Н.8, Семенихин С.В.9, Слесарев М.В.10, Фельдман В.М.11

хОАО «ИНЭУМ им. И.С. Брука», ген. директор, kim@ mcst. ru: 2ОАО «ИНЭУМ им. И.С. Брука», нач. отдела, ignat@mcst. ru: 3ОАО «ИНЭУМ им. И.С. Брука», нач. отделения, vol@ mcst ru: 4ОАО «ИНЭУМ им. И.С. Брука», нач. сектора, vvv@ mcst ru: 5ОАО «ИНЭУМ им. И.С. Брука», нач. отдела, fg@mcst. ru: 6ОАО «ИНЭУМ им. И.С. Брука», нач. отдела, maksim @mcst.ru: 7ОАО «ИНЭУМ им. И.С. Брука», нач. отдела, muradnz @ mcst. ru: 8ОАО «ИНЭУМ им. И.С. Брука», нач. отделения, py@mcst. ru: 9ОАО «ИНЭУМ им. И.С. Брука», нач. отделения, svs@ mcst ru: 10ОАО «ИНЭУМ им. И.С. Брука», нач. сектора, mish @mcst ru: иОАО «ИНЭУМ им. И.С. Брука», зам ген. директора, feld@ mcst ru

Российские технологии «Эльбрус» для персональных компьютеров, серверов и суперкомпьютеров

Ключевые проблемы современной ИТ индустрии

Развитие информационных технологий в значительной степени определяется темпами развития в таких ключевых областях, как микроэлектроника и программное обеспечение. Они характеризуются экспоненциальным ростом числа транзисторов в микропроцессорах и экспоненциальным ростом объема и сложности программного обеспечения.

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

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

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

Быстрый рост объема и сложности программного обеспечения характеризуется снижением его общей надежности из-за большого количества ошибок и уязвимостей. Например, размер дистрибутива Linux Debian c 2000 г. (Potato) по 2013 г. (Wheezy) вырос более чем в 9 раз по числу входящих в него пакетов и почти в 9 раз по размеру исходного кода, а надежность находится на уровне 1-5 ошибок на 1 тыс. строк кода. Последнее десятилетие характеризуется стремительным ростом киберпреступности и кибератак, что стало прямым следствием ошибок в программах, а также использованием существующих аппаратных архитектур, обладающих низким семантическим уровнем и не имеющих средств повышения надежности программ. Таким образом, вопросы безопасности и надежности программного обеспечения выходят на первый план на пути дальнейшего развития информационных технологий.

Решение всех перечисленных проблем возможно на базе технологий универсальных микропроцессоров с архитектурой «Эльбрус» [2-3]. Они обеспечивают высокую производительность процессорного ядра за счет параллельного исполнения операций при экономном энергопотреблении, обеспечивают полную и эффективную двоичную совместимость с самой распространенной в мире архитектурной платформой Intel x86, x86-64, а также предоставляют эффективные средства надежного программирования на базе аппаратно поддерживаемых защищенных вычислений. Благодаря этому микропроцессоры с архитектурой «Эльбрус» рассчитаны на широкий спектр применений, а их технологии постоянно совершенствуются и не уступают лучшим зарубежным аналогам.

Явное управление параллелизмом операций

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

В первых 4-х поколениях микропроцессоров с архитектурой «Эльбрус», включая процессоры «Эльбрус-2С+» и «Эльбрус-4С», с помощью широкой команды на одном процессорном ядре в каждом такте можно запускать на исполнение: на ациклических участках кода до 16 операций,

при выполнении циклов — до 23 операций, 8 64-разрядных вещественных операций. В микропроцессоре «Эльбрус-8С» уже можно запускать на исполнение до 25 операций и 12 64-разрядных вещественных операций.

Для снижения потерь от доступа за данными в память реализован аппаратно-программный механизм асинхронной предварительной подкачки данных в специальные буферные памяти. Специальные операции подготовки переходов обеспечивают возможность эффективно осуществлять переходы без использования предсказателя переходов. Аппаратура поддерживает средства (исполнение под управлением предикатов) программно-управляемого переупорядочивания операций и одновременного исполнения нескольких условных ветвей программы.

Наряду с параллелизмом на уровне операций в архитектуре «Эльбрус» реализован векторный параллелизм за счет операций над упакованными данными. Благодаря этому возможности выполнения 32-разрядных вещественных операций на одном ядре возрастают в 2 раза и позволяют исполнять: на «Эльбрус-2С+» и «Эльбрус-4С» — до 16, а на микропроцессоре «Эльбрус-8С» — до 24 упакованных операций (Флопс). Упакованные операции реализованы также для целочисленных операций. Они находят применение в таких областях, как обработка сигналов, обработка изображений, графика и др. Во вновь разрабатываемых процессорах линии «Эльбрус» возможности выполнения упакованных операций удваиваются.

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

Все описанные механизмы параллельного исполнения эффективно поддержаны оптимизирующим компилятором [4], что позволяет автоматически получать коды, использующие мощное процессорное ядро и другие параллельные возможности архитектуры.

Технологии параллельного исполнения операций с использованием для этого оптимизирующего компилятора находят применение в развитии известных архитектур. Хотя в большинстве универсальных МП используется внеочередное аппаратное планирование потока операций, некоторые элементы планирования вычислений с помощью компилятора заложены в архитектуру Sparc64, начиная со Sparc64 VIIIfx — специального расширения архитектуры Sparc v9 для суперкомпьютеров. Как и в архитектуре «Эльбрус», в этой архитектуре используются большие регистровые файлы, а также возможность закодировать одновременную выборку сразу двух операций, с помощью которых оптимизирующему компилятору удается гораздо лучше распараллеливать вычисления, особенно в циклах.

Динамическая компиляция и оптимизация

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

В микропроцессорах с архитектурой «Эльбрус» технология динамической компиляции и оптимизации, прежде всего, используется для обеспечения полной двоичной совместимости с архитектурой Intel x86, x86-64 и двоичной совместимости на уровне приложений под управлением операционной системы «Эльбрус», базирующейся на OS Linux (Рис.1) [5]. Эта система включает в себя несколько уровней динамических компиляторов. Простейшие шаблонные компиляторы генерируют не очень оптимальный код, но зато работают очень быстро. А самые высокие уровни системы динамической двоичной оптимизации полностью используют все параллельные возможности целевой архитектуры «Эльбрус».

xS6 приложение

х86 приложение под управлением Linux

х86 операционная система (Windows, Linux и др.)

система двоичном трансляции

х86 BIOS Ï

Ï

х86

ï

двоичныи транслятор и оптимизатор

База «Эльбрус» кодов

х86 код

полная система двоичнои трансляции

система двоичнои трансляции для Linux приложений

ь ♦

^^Н операционная система И ^^Н Эльбрус-Linux H

1 t ♦

Микропроцессор с архитектурой «Эльбрус»

Г«Эльбв^рГ

_Ьг—

средства динамическо й поддержки

Т

интерпретато Р

«Эльбрус»

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

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

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

Примечательно использование системы динамической компиляции оптимизации в недавно объявленном микропроцессоре Denver, созданном в компании Nvidia. Этот микропроцессор реализует систему команд ARM v.8, т.е. 64-разрядную архитектуру, которую предполагается использовать, в том числе, и в области энергоэффективных серверов и суперкомпьютеров. В самом начале исполнения программы исходный ARM код аппаратно преобразуется во внутренние команды. При этом выполняются не более двух операций за такт, но собирается информация о передачах управления в программе. В случае, когда исполнение какого-то участка кода достигает некоторого порогового значения, аппаратно вызывается динамический двоичный компилятор, который оптимизирует и сохраняет микрокод соответствующего региона, используя возможность запускать до семи внутренних операций за такт за счет явного управления параллелизмом в микрокоде. Приводятся данные, что на работу неоптимизированного кода и самой динамической компиляции затрачивается всего только 3% общего времени исполнения. А на вещественных приложениях микропроцессор Denver работает быстрее, чем предназначенный для работы в том же энергоэффективном сегменте микропроцессор последнего поколения Haswell от компании Intel. Технология, реализованная в микропроцессоре Denver, очень похожа на технологию, реализованную в микропроцессорах с архитектурой «Эльбрус». Отличие заключается в том, что в микропроцессорах линии «Эльбрус» используется более широкая команда, позволяющая исполнять за такт существенно больше операций.

Динамическая компиляция и оптимизация находит применение при реализации программ, требующих хорошей адаптации к конкретным аппаратным особенностям и ресурсам. В области суперкомпьютеров динамическая компиляция используется в технологии OpenCL, которая используется для оптимизации программ, как для графических, так и для универсальных процессоров. Для этого отдельные, наиболее вычислительно емкие ядра программ реализуются на языке OpenCL C, компилируются в промежуточный язык, например, LLVM, а при запуске программы на исполнение компилируются из промежуточного представления в код конкретной аппаратной платформы. Аналогичный подход применяется для оптимизации библиотеки OpenGL. Эта технология

позволяет максимально эффективно использовать все параллельные возможности целевой аппаратной платформы, включая средства векторизации и многопоточного исполнения.

В системе программирования архитектуры «Эльбрус» с самого начала ее разработки была заложена возможность сохранения программы не только в виде двоичного кода, но и в виде промежуточного представления, семантически близкого к языку C. Промежуточное представление программ для архитектуры «Эльбрус» EIR (Elbrus Intermediate Representation) было разработано до появления промежуточного представления LLVM, но они обладают значительным сходством. Это, в частности, позволило разработчикам компилятора для архитектуры «Эльбрус» оптимизировать шейдеры, реализованные в OpenGL с помощью библиотеки LLVMpipe и ускорить исполнение трехмерной графики в 3 раза.

Для повышения надежности программ часто используются безопасные языки, такие как Java и C#. Реализация этих языков осуществляется с помощью виртуальной машины, которая включает динамические средства контроля типов и целостности объектов при выполнении программы. Поскольку виртуальные машины не имеют непосредственной реализации на современных аппаратных платформах, программы на Java и C# исполняются с помощью интерпретаторов, а для повышения эффективности исполнения используются динамические компиляторы и оптимизаторы. На микропроцессорах с архитектурой «Эльбрус» реализована виртуальная машина языка Java OpenJDK, в которой работает динамический компилятор, оптимизируя Java bytecode в параллельные команды микропроцессора.

Технология защищенного исполнения программ

В архитектуре «Эльбрус» реализована не имеющие аналогов в мире технология защищенного исполнения программ, которая позволяет эффективно использовать языки программирования C и C++ и обеспечивают уровень надежности, не уступающий языкам Java и C#. Это достигается за счет теговой архитектуры, структурированной памяти на базе дескрипторов и контекстной защиты, обеспечивающей языковые принципы ограничения областей видимости данных (Рис.2).

С помощью тегов задается информация о типах данных, используемых программой. При этом аппаратно поддерживаются только несколько, наиболее важных с точки зрения надежности типов данных: неинициализированные данные, числовые данные и указатели на данные (дескрипторы, описывающие объекты, на которые смотрят указатели). Благодаря этому теги не занимают много места (2 бита на 32-разрядное слово в памяти) и хранятся в памяти в кодах коррекции (ECC). Контроль числовых типов данных возлагается на компиляторы.

дескриптор объекта

[

разм. | смещ. | адрес

Теги данных

П дескриптор объекта

0 числовое значение

1 неинициализированные данные

адрес объект, область стека

смещение Г 3.14

4096

размер ^ разм. I смещ. I адрес

25

к, разм. I смещ. I адрес

дескриптор объекта

Объект, область стека адрес

31

раемК

разм. | смещ. | адрес

Рис. 2. Тегированная память в архитектуре «Эльбрус» Благодаря наличию тегов и дескрипторов память исполняемой программы становится структурированной, т. е. наполненной содержательными объектами и данными, а не просто набором байтов, как во всех современных микропроцессорных архитектурах. Это существенно повышает семантический уровень архитектуры «Эльбрус».

Семантический уровень архитектуры «Эльбрус» дополнительно повышается в направлении языков программирования за счет средств контекстной защиты, реализованных на аппаратном уровне. Контекстная защита при исполнении любой функции (метода) обеспечивает доступ только к тем данным, которые прямо или косвенно доступны ей (ему) средствами языка. Обычно это данные, расположенные в области видимости функции (метода). Для функции языка C — это глобальные данные единицы компиляции (модуля), параметры и локальные данные самой функции. При этом глобальные данные модуля состоят из собственных данных модуля, доступных только его функциям, интерфейсных данных модуля, видимых из функций других модулей, и ссылок на интерфейсные данные других модулей. При вызове из функции одного модуля функции другого модуля аппаратно и атомарно происходит смена контекста, в результате чего вызванной функции становятся доступны ее глобальные данные, но глобальные данные вызывающей функции становятся не доступными. Контекстная защита для языка С++ работает аналогичным образом [6].

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

Технология защищенного исполнения программ поддерживается компонентами системы программирования (компиляторы и средства

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

Технология защищенного исполнения позволяет создавать надежное, хорошо отлаженное программное обеспечение большими коллективами разработчиков. Кроме этого исполнение программ в этом режима надежно защищает их от проникновения компьютерных вирусов. Чаще всего вирусы проникают, используя для этого ошибки в системном программном обеспечении, но, как правило, для передачи управления используется неконтролируемое на всех существующих аппаратных системах переполнение буфера. Благодаря наличию тегов, дескрипторов и контекстной защиты на архитектуре «Эльбрус» такой способ проникновения просто не возможен. Это позволяет безопасно включать в программы, работающие на платформе «Эльбрус», встроенные модули (plug-in), которые работают в виртуальной памяти приложения и на обычных аппаратных системах делают их уязвимыми.

Хотя в мире предпринималось много попыток создать более надежные аппаратные архитектуры, они не увенчались успехом, т.к. в самом начале для реализации принимались неверные решения, в дальнейшем мешали вопросы совместимости. Тем не менее, попытки создать надежную архитектуру продолжаются. В частности, абсолютно новым путем пытаются идти разработчики проекта CRUSH-SAFE , поддерживаемого агентством DARPA. Основной целью проекта является создание надежных вычислительных систем. Для этого предлагается аппаратная архитектура, в которой 64-разнядные данные защищаются 64-разрядными тегами, обращение к данным осуществляется через дескрипторы, выполняется динамический контроль типов и считается, что ради достижения высокой надежности можно пожертвовать производительность и совместимостью. В отличие от технологий архитектуры «Эльбрус» предлагаемая система ориентируется на абсолютно новые языки программирования, для нее должна использоваться новая операционная система и специальная аппаратура. Этот проект находится в начальной стадии по сравнению с хорошо проработанной и требующей массового внедрения технологией защищенного исполнения программ в архитектуре «Эльбрус».

Современные микропроцессоры линии «Эльбрус»

Начиная с 2007 г. разработано 5 поколений микропроцессоров с архитектурой «Эльбрус», причем 3 последних микропроцессора, «Эльбрус-2С+», «Эльбрус-4С» и «Эльбрус-8С», реализованы как многоядерные системы на кристалле (рис.3). Они используются для создания встраиваемых модулей, серверных модулей, серверов и автоматизированных рабочих мест.

к процессору через один или два дуплексных канала ввода-вывода с пропускной способностью 2+2 Гбайт/сек. КПИ поддерживает работу со следующими интерфейсами внешних устройств и шин: SATA, PCI, PCI Express x8, Ethernet 10/100/1000 Mbps, IDE, IEEE1284/RS-232/RS-485, USB 2.0, AC-97/GPIO, IOAPIC/PIC/I2C/SPI/Timer. Для возможности работать с более современными интерфейсами в 2015 г. завершается разработка контроллер КПИ-2. Первая итерация этого контроллера, спроектированного на технологии 65 нм, изготовлена в октябре 2014 г. КПИ-2 будет взаимодействовать с процессорами через более мощные каналы PCI Express.

В октябре 2014 г. изготовлена 1-я итерация 8-ядерных микропроцессор «Эльбрус-8С» по технологическим нормам 28 нм (завершение разработки в 2015 г.). Эти микропроцессоры рассчитаны на частоту 1,3 ГГц и производительность 250 Гфлопс. Эти, в 4 раза более производительные микропроцессоры (по сравнению с «Эльбрус-4С») можно использовать для создания однопроцессорных рабочих мест, четырехпроцессорных серверных модулей, мощных серверов и супер-ЭВМ петафлопсного класса.

В ноябре 2014 г. завершаются государственные испытания полностью российского микропроцессора «Эльбрус-1С». Он изготовлен на российской фабрике (завод «Микрон») по технологическим нормам 90 нм. В 2015г. завершается разработка гетерогенного микропроцессора (СнК) «Эльбрус-1С+», в котором кроме универсального ядра «Эльбрус» будет реализовано графическое ядро, поддерживающее 2D и 3D графику. Этот маломощный процессор (7 Вт), работающий на частоте 1 ГГц, предполагается использовать для создания мобильных устройств.

С 2014 г. ведется разработка 8-16-ядерного микропроцессора «Эльбрус-16С» (первая итерация в 2017 г., завершение разработки в 2018 г.) на технологии 28 нм производительностью свыше 512 Гфлопс. На базе этого МП можно изготавливать супер-ЭВМ производительностью до 10 петафлопс.

До 2020 г. запланирована разработка 32-ядерного МП с тактовой частотой до 2 ГГц с производительностью 2-4 Тфлопс на технологии 14 нм. На базе этого МП можно создать супер-ЭВМ с производительностью свыше 100 Pflops.

Программное обеспечение для архитектуры «Эльбрус»

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

векторный параллелизм, параллелизм потоков управления, параллелизм систем с распределенной памятью. Разработчикам программ предоставляются средства анализа производительности и распараллеливания программ (OpenMP, MPI). Данные производительности реальных задач, полученные на 16-ядерных модулях с МП «Эльбрус-4С», подтверждают эффективность МП с архитектурой «Эльбрус».

ОПО «Эльбрус» включает средства поддержки пользовательского интерфейса, комплекс сервисных и пользовательских программ (СУБД, средства работы с гипертекстом, офисные пакеты, электронную почту и проч.), графические библиотеки и пакеты, высокопроизводительные математические и мультимедийные библиотеки. Эти средства поддерживают все возможности архитектуры «Эльбрус» и отвечают современным требованиям, которые предъявляются к программным системам индивидуального и коллективного пользования. Нужно также отметить, что созданное ОПО «Эльбрус» работает не только на платформе «Эльбрус», но и на платформе Sparc (ЗАО «МЦСТ» выпускает процессоры с этой архитектурой), а также на платформе Intel x86, x86-64.

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

Литература

1. Postiff M.A., Greene D.A., Tyson G.S., Mudge T.N. The Limits of Instruction Level Parallelism in SPEC95 Application // INTERACT-3 at ASPLOS-VIII, 1998.

2. Ким А.К. Российские универсальные микропроцессоры и вычислительные комплексы высокой производительности: результаты и взгляд в будущее. // Вопросы радиоэлектроники серия ЭВТ, выпуск 3, 2012. С. 5-13.

3. Ким А.К., Волконский В.Ю., Груздов Ф.А., Михайлов М.С., Парахин Ю.Н., Сахин Ю.Х., Семенихин С.В., Слесарев М.В., Фельдман В.М. Архитектурная линия «Эльбрус» сегодня: микропроцессоры, вычислительные комплексы, программное обеспечение, // Современные информационные технологии и ИТ-образование. Сборник докладов 7-й международной научно-практической конференции, Москва, 6-9 декабря 2012. С.21-29.

4. Волконский В.Ю., Брегер А.В., Бучнев А.Ю., Грабежной А.В., Ермолицкий А.В., Муханов Л.Е., Нейман-заде М.И., Степанов П.А., Четверина О.А. Методы распараллеливания программ в оптимизирующем компиляторе. // Вопросы радиоэлектроники серия ЭВТ, выпуск 3, 2012. С. 63-88.

5. Воронов Н.В., Гимпельсон В.Д., Маслов М.В., Рыбаков А.А., Сюсюкалов Н.С. Система динамической двоичной трансляции х86->«Эльбрус». // Вопросы радиоэлектроники серия ЭВТ, выпуск 3, 2012. С.89-107.

6. Ким А.К., Волконский В.Ю., Груздов Ф.А., Сахин Ю.Х., Семенихин С.В. Защищенное исполнение программ на базе аппаратной и системной поддержки архитектуры «Эльбрус». // Современные информационные технологии и ИТ-образование. Сборник докладов 5-й международной научно-практической конференции, Москва, 8-10 ноября 2010. С.22-39.

7. Исаев М.В., Кожин А.С., Костенко В.О., Поляков Н.Ю., Сахин Ю.Х. Двухядерная гетерогенная система на кристалле «Эльбрус-2С+». // Вопросы радиоэлектроники, сер. ЭВТ, 2012, вып. 3. С.42-52.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

8. Ким А.К., Михайлов М.С., Фельдман В.М. Подсистема ввода-вывода для систем на кристалле «МЦСТ-4R» и «Эльбрус^» на основе микросхемы контроллера периферийных интерфейсов. // Вопросы радиоэлектроники, сер. ЭВТ, 2012, вып. 3. С.52-62.

i Надоели баннеры? Вы всегда можете отключить рекламу.