"Эльбрус" - процессор российского производства. Технические характеристики и история создания. История и техническое описание процессоров эльбрус

В умах подавляющего большинства обывателей прочно укоренилась мысль о том, что в области проектирования вычислительной техники наша страна играет роль безнадёжного аутсайдера. США, Европа, и, быть может, Китай – вот лидеры производства современных микропроцессоров и систем. Однако это не совсем верно: как подтверждают факты, собственные разработки у нас тоже имеются, и они не только приближаются по определённым параметрам к новейшим достижениям полупроводниковых технологий, но кое в чём их даже превосходят. Насколько продвинулась отечественная наука в этой области и скоро ли можно будет увидеть на прилавках магазинов российский процессор , мы и расскажем в нашем обзоре.

Как всё начиналось

Наверняка многие слышали о том, что во времена Сталина кибернетика была объявлена лженаукой. Гораздо меньше людей знают о том, что кибернетика и вычислительная техника – это отнюдь не одно и то же. Как раз последняя развивалась в то время очень активно, а в 1948 году Постановлением Совета Министров СССР №2369 для этой цели был создан Институт точной механики и вычислительной техники, получивший впоследствии имя Сергея Алексеевича Лебедева. Сам Сергей Алексеевич был приглашён в институт в 1950 году для разработки одной из первых отечественных ЭВМ БЭСМ-1.

А вот с приходом к власти Никиты Сергеевича, развенчавшего «культ Сталина», был взят курс на копирование зарубежных достижений в этой области. Тем не менее, разработка своих систем продолжалась, и в 1969 году, в связи с необходимостью оснащения стратегических систем специального назначения высокопроизводительной вычислительной техникой, родилась идея архитектурной линии «Эльбрус». Под руководством Всеволода Сергеевича Бурцева, ставшего впоследствии академиком Российской Академии Наук, созданный многопроцессорный вычислительный комплекс (МВК) «Эльбрус-1» был предъявлен государственной комиссии и в 1979 году прошёл государственные испытания. Он был спроектирован на основе микросхем TTL-логики и включал в себя 10 процессоров с суммарной производительностью 15 млн. операций в секунду (15 Мфлопс). На тот момент это была великолепная машина: впервые в мире применялась суперскалярная архитектура, позволявшая параллельно отрабатывать несколько машинных команд. Наряду с центральным процессором имелись специализированные: для обмена данными с внешними устройствами, для быстрого преобразования Фурье, для эмуляции команд БЭСМ-6 и для решения целого ряда специальных задач. Объем оперативной памяти достигал солидного объёма в 64 МБ.

Чтобы воспользоваться всеми достоинствами оригинальной архитектуры и системы команд МВК, несколько институтов разрабатывали для него не только операционную систему, но и языки программирования высокого уровня. А шестью годами позже, в 1985 году, в серийное производство был запущен «Эльбрус-2», который представлял собой незначительно модернизированный с точки зрения схемотехники «Эльбрус-1», переведенный на новую элементную базу микросхем ЭСЛ-технологии серии «ИС-100». Этот МВК уже достигал производительности в 125 Мфлопс. МВК строился по модульному принципу, с учётом обеспечения надёжности. Благодаря своему быстродействию и отказоустойчивости, он в течение многих лет использовался в центральных объектах стратегических систем страны. Всего было выпущено 30 экземпляров МВК «Эльбрус-2».

Следующим этапом развития серии стал проект МВК «Эльбрус-3». Руководил им член-корреспондент Академии наук СССР Борис Арташесович Бабаян. Он предложил передовую архитектурную реализацию концепции широкого командного слова. Опытный образец машины изготовили в 1990 году, но её отладка не была завершена по причине прекращения финансирования проекта из-за экономических проблем того периода.

Технологии «SPARC»

Дальнейшее продолжение развития линии «Эльбрус» связано с ТОО «Московский центр SPARC-технологий», сформировавшимся в 1992 году и впоследствии переименованным в ЗАО «МЦСТ». Старшее поколение, знакомое с микропроцессорами с 90-х годов прошлого века, хорошо помнят процессоры семейства SPARC, выпускавшиеся компанией «Sun Microsystems». В то время это была весьма популярная платформа в среде, как это принято сейчас говорить, корпоративных заказчиков. Компания занималась созданием промышленных систем на основе архитектуры SPARC v8, как для зарубежных, так и для отечественных заказчиков. Знакомство с этим направлением помогло МЦСТ как получить опыт для развития собственной архитектуры процессора «Эльбрус» (называвшейся в то время «архитектура E2k»), так и просто пережить период экономических трудностей, сохранив свой уникальный коллектив.

Как следствие работы с новой архитектурой, в 2001 году у МЦСТ появился первый микропроцессор собственной разработки, названный R150. Он выпускался по довольно грубому техпроцессу с нормами литографии 350 нм, что делало его достаточно дешёвым и пригодным для производства на большинстве существующего оборудования. В то же время, его характеристики были вполне конкурентоспособными: при общей потребляемой мощности 5 Вт его единственное ядро могло работать на частоте 150 МГц, обеспечивая производительность порядка 150 Мфлопс. А всего лишь через 3 года увидел свет следующий чип – R500, выпускающийся уже по нормам 130 нм, что заметно повысило его эффективность. Работая на частоте 500 МГц, он обладал производительностью в 500 Мфлопс при потребляемой мощности 1 Вт! А ещё через 3 года, в 2007 году, появился очередной продукт эволюции процессоров семейства SPARC – R500S, содержащий уже два ядра с общей производительностью 1 Гфлопс.

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

Процессоры серии «Эльбрус»

Несмотря на активную работу с архитектурой SPARC, развитие собственного направления было продолжено. В 2000 году было утверждено ТЗ на вычислительный комплекс «Эльбрус-3М1» и микропроцессор «Эльбрус», а через 7 лет, в 2007 году, были проведены первые государственные испытания. Работоспособность отечественной архитектуры «Эльбрус» была полностью подтверждена. Он обладал следующими характеристиками: техпроцесс – 130 нм, одно ядро, работающее на частоте 300 МГц, потребляемая мощность 6 Вт, производительность 4,8 Гфлопс.

В 2009 году прошла сертификацию операционная система «Эльбрус», созданная на базе ядра Linux 2.6.33. Была проделана фундаментальная работа по преобразованию ОС Linux в операционную систему, поддерживающую режим работы в жёстком реальном времени, а также написано множество специализированных библиотек. Заметную помощь ЗАО «МЦСТ» в создании ПО и проектировании вычислительных модулей с 2006 года оказывает коллектив открытого акционерного общества «Институт электронных управляющих машин имени И. С. Брука» (ОАО «ИНЭУМ им. И. С. Брука»), непосредственно участвующий в разработках.

Первый серийно выпускаемый микропроцессор «Эльбрус-S», производимый по технологическим нормам 90 нм, и контроллер периферийных интерфейсов (КПИ) для него прошли испытания в 2010 году. Он тоже имел всего одно ядро, но мог работать на частоте в 500 МГц, выдавая производительность 8 Гфлопс, но и рассеивал заметно большую мощность – до 20 Вт. Для сравнения заметим, что такую же производительность имел в своё время процессор AMD Athlon 64, работающий на частоте 2,2 ГГц.

Всего лишь годом позже, в 2011-м, было начато производство кристалла следующего поколения – «Эльбрус-2С+», при тех же технологических нормах – 90 нм – имеющего заметно большую производительность в целых 28 Гфлопс (что соответствует уровню примерно посередине между Intel Core 2 Duo и Intel Core i3). Такой прорыв оказался возможен за счёт наличия четырёх дополнительных ядер встроенного сопроцессора, предназначенного для цифровой обработки сигналов (DSP), и двух основных ядер, тактовая частота которых составила те же 500 МГц. Справедливости ради заметим, что из-за некоторой трудоёмкости программирования встроенного DSP он не снискал большой популярности, поэтому в модели следующего поколения от него решено было отказаться.

А что же происходит в настоящее время? Сейчас, в 2014 году, МЦСТ выпускает самую совершенную модель – «Эльбрус-4С», выполненный по технологии 65 нм и работающий на частоте 800 МГц. Благодаря наличию четырёх ядер с двумя мегабайтами кеш-памяти на каждое ядро, он обеспечивает внушительную производительность 50 Гфлопс, вплотную приближаясь к Intel Core i7-975 Extreme Edition (53 Гфлопс). Его потребляемая мощность при этом заметно скромнее и составляет всего 45 Вт. Серийное производство пока не начато, но уже существуют опытные образцы. А так как дефицитное оборудование для этого не требуется – благодаря «крупному» техпроцессу достаточно любой из множества широко доступных фабрик, то этот момент не за горами.

Итак, мы вкратце рассмотрели номенклатуру и историю создания отечественных процессоров. Насколько же они конкурентоспособны? Какие у них отличия от продукции AMD/Intel, достоинства и недостатки? Какие применения находят эти уникальные изделия? И, наконец, можно ли запустить на «Эльбрусе» ОС Windows? Ответы на эти вопросы, а также тесты производительности, последуют во второй части этой статьи, которая появится на нашем сайте в ближайшие дни.

Технические характеристики процессоров, выпускаемых ЗАО «МЦСТ»

Архитектура SPARC R150 R500 R500S R1000
Год выпуска 2001 2004 2007 2011
Техпроцесс, нм 350 130 130 90
Архитектура SPARC v8 SPARC v8 SPARC v8 SPARC v9, VIS1, VIS2
Количество ядер 1 1 2 4
Тактовая частота, МГц 150 500 500 1000
0,15 0,5 1 16
0,15 0,5 1 8
Потребляемая мощность, Вт 5 1 5 15
Команд на 1 такт 1 1 1 2
Кеш уровня 2, МБ 0* 0** 0,5 2
0,4 0,8 2,6 6,4
Площадь кристалла, мм? 100 25 81 128
Число транзисторов, млн 2,8 5 51 180
Число слоёв металла 4 8 8 10
Тип корпуса BGA 480 BGA 376 HFCBGA 900 HFCBGA 1156
с общей памятью 1 4 2 16
3
Пропускная способность канала ccLVDS, Гбайт/с 4
1,3 2
до 4 до 4
Южный мост встроенный КПИ
Архитектура Эльбрус Эльбрус Эльбрус-S Эльбрус-2C+ Эльбрус-4C
Год выпуска 2005 2010 2011 2014
Техпроцесс, нм 130 90 90 65
Архитектура Эльбрус Эльбрус Эльбрус, ElCore9 Эльбрус
Количество ядер 1 1 2 (+4 DSP) 4
Тактовая частота, МГц 300 500 500 800
Производительность (32 бита), Гфлопс 4,8 8 28 50
Производительность (64 бита), Гфлопс 2,4 4 8 25
Потребляемая мощность, Вт 6 20 25 45
Команд на 1 такт 23 23 23 23
Кеш уровня 2, МБ 0,25 2 2 8
Тип встроенного контроллера памяти DDR2-500 DDR2-800 DDR3-1600
Количество каналов обмена с памятью 1 1 3
Пропускная способность шины памяти, Гбайт/с 4,8 8 12,8 38,4
Площадь кристалла, мм? 189 142 289 380
Число транзисторов, млн 75,8 218 368 986
Число слоёв металла 8 9 9 9
Тип корпуса HFCBGA 900 HFCBGA 1156 HFCBGA 1296 HFCBGA 1600

Максимальное число ядер в системе

с общей памятью (прямое соединение)

2 4 8 16

Максимальное число ядер в системе

с общей памятью (через чип-коммутатор)

16 32 64
Каналы межпроцессорного обмена ccLVDS 3 3 3
Пропускная способность одного канала ccLVDS, Гбайт/с 4 4 12
Пропускная способность канала ioLVDS, Гбайт/с 2 2 4
Комплексирование машин через каналы RDMA до 2 до 4 до 4 до 4
Пропускная способность канала ввода-вывода/RemoteDMA, Гбайт/с 2 2 2 4
Южный мост на базе FPGA КПИ КПИ КПИ

* возможно подключение внешней кеш-памяти объёмом до 1 МБ

** возможно подключение внешней кеш-памяти объёмом до 4 МБ

RISC, CISC, и всякое такое

Все выпускаемые сегодня процессоры делятся на два больших класса: процессоры с сокращённым набором команд, или RISC (Reduced Instruction Set Computing), и процессоры с полным набором команд, или CISC (Complete Instruction Set Computing). Набор команд первых из них отличается аскетичностью, сами команды однотипны и выполняются за небольшое фиксированное время, что позволяет эффективнее наращивать тактовую частоту. Зато в CISC-системе команды более универсальны, что несколько упрощает написание программного кода.

С точки зрения программиста, все x86-совместимые процессоры являются CISC-процессорами, но на самом деле, их современные модели спроектированы на основе RISC-ядра. Выполнение CISC-команд эмулируется аппаратурой процессора путём их преобразования «на лету» в команды RISC-ядра с помощью специального блока декодирования инструкций и микропрограммы-транслятора.. Такой подход позволяет повысить эффективность работы при сохранении совместимости, а также позволяет исправлять некоторые ошибки проектирования уже после выпуска чипа в серийное производство. Это достигается путём изменения кода микропрограммы-транслятора, обычно выполняемого средствами BIOS той системной платы, куда установлен процессор (именно об этом идёт речь, когда производители выпускают модификации BIOS, «совместимые с процессором таким-то»: то есть, в него внесена модифицированная версия микропрограммы для этой модели процессора, исправляющая некоторые ошибки, тогда как сам процессор будет прекрасно работать и на «несовместимом» BIOS’е).

Когда программист или компилятор создаёт программу в виде последовательности ассемблерных инструкций, то подразумевается, что они будут исполняться последовательно, одна за другой, и исполнение каждой инструкции полностью завершается перед запуском на исполнение следующей инструкции. Так устроены системы команд всех RISC и CISC процессоров. Первые модели процессоров были способны выполнять не больше одной инструкции за один такт, и это ограничение не создавало неудобств. Но со временем технология позволила делать всё более сложные чипы, и тогда для увеличения производительности стали «учить» процессор выполнять по нескольку инструкций за такт. Это свойство называется суперскалярностью. Но есть проблема: нельзя просто так запускать параллельно несколько операций, потому что среди них могут быть зависимости. Например, одна инструкция читает число из памяти в регистр, а следующая – инкрементирует полученное значение в регистре. Их можно запускать только последовательно, но в самих инструкциях нет информации об их взаимозависимости. Поэтому нужна специальная и сложная аппаратура, детектирующая зависимости и гарантирующая корректность исполнения инструкций «вне очереди». Все современные x86-совместимые микропроцессоры – суперскалярные. Например, самые современные чипы на архитектуре Haswell выполняют до восьми операций за такт. Но объём аппаратуры анализа зависимостей для такого числа операций весьма велик, и поэтому чипы получаются сложными и «горячими».

Заметим, что речь идёт именно о микрооперациях RISC-ядра, а вовсе не об инструкциях x86, да ещё и на их вид наложены некоторые ограничения (например, арифметических операций и операций с памятью может быть не более половины от этого числа).

Процессоры архитектуры «Эльбрус» построена по принципу VLIW, или очень широкого командного слова (Very Large Instruction Word). Этот подход можно считать разновидностью RISC – коротких команд с фиксированным временем выполнения, с тем отличием, что каждая команда содержит не одну, а много элементарных операций (вплоть до 23-х). Загрузить такой широкий конвейер на 100% непросто, поэтому разработчики переложили выделение зависимостей и оптимизацию порядка выполнения команд на плечи компилятора. И в самом деле: компилятор, запускающийся на этапе перевода программы, написанной на языке высокого уровня (или ассемблере), в машинные коды, обладает гораздо большими ресурсами, а также большим доступным временем (в разумных пределах, конечно), поэтому эффективность его работы может быть выше, чем у аппаратного блока анализа зависимостей. Используя алгоритмы, имеющие много независимых операций (и поэтому хорошо поддающиеся оптимизации), программист может получить производительность, заметно превосходящую предел возможностей процессора AMD/Intel, работающего на той же частоте. Кристалл процессора в результате получается проще и надёжнее, и потребляет меньшую мощность.

x86-совместимость «в нагрузку»

Объём написанного на сегодня кода в среде x86 столь велик, что игнорировать его не может себе позволить ни один, даже самый крупный, производитель процессоров. Компания Intel однажды смогла «провернуть» такой фокус, отказавшись от аппаратной поддержки процессоров 8080 и перейдя на новую на тот момент архитектуру 386, но суммарный объём существующего кода был тогда на несколько порядков меньше. Повторить этот смертельный трюк вряд ли удастся кому-либо в обозримом будущем, удел смельчака – узкоспециализированная ниша, занять которую он обречён в этом случае (ARM-процессоры, доминирующие на смартфонах, лучшее тому подтверждение).

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

Чтобы обеспечить работу существующих приложений на процессоре «Эльбрус», применяется механизм двоичной трансляции (другое его название – «битовый компилятор»). Он существует в двух вариантах: уровня системы и уровня приложений. Первый из них начинает работу сразу после включения питания, с загрузкой в память компактного транслятора, хранящегося в микросхеме флеш-памяти, расположенной на системной плате. При этом для всех загружаемых позже программ, включая ОС, процессор становится неотличим от любого x86-совместимого процессора, позволяя запускать хоть Windows, хоть Mac OS, хоть Linux, или любую другую операционную систему, например, такую экзотическую, как Колибри ОС, или IBM OS/2.

Такая совместимость достигается ценой некоторого снижения производительности, которая в режиме двоичной трансляции уменьшается примерно на 30% (справедливости ради заметим, что в текущей версии транслятора для процессора "Эльбрус-2С+" «гостевой» ОС доступно всего лишь одно ядро, но в новой версии, для "Эльбрус-4С", этот недостаток исправлен). Разумеется, все специфические особенности процессора, о которых мы ещё расскажем, будут при этом недоступны.

Существует и другая разновидность битового транслятора - уровня приложений. При этом процессор стартует в нативном режиме, и на нём запускается ОС «Эльбрус» (или другая ОС, скомпилированная в кодах Эльбрус), а после её загрузки запускается специальное приложение-эмулятор, позволяющее, одновременно с нативными, запускать и x86-совместимые приложения (наподобие среды Wine в Linux). «Родные» приложения работают при этом в комфортной для себя среде, имея доступ ко всем возможностям и 100% вычислительной мощности ЦП, а «гостевые» обладают полной иллюзией запуска в среде x86, за исключением доступности системного вызова ptrace.

Процессор «Эльбрус-2С+» поддерживает битовую трансляцию только 32-разрядных кодов x86 и выполняет их на одном ядре, в то время как «Эльбрус-4С» может транслировать и 64-битные команды и поддерживает трансляцию многопоточных приложений (т.е. использующих несколько ядер процессора после трансляции).

Чем ещё интересен «Эльбрус»

Внутри процессор «Эльбрус» устроен следующим образом. Имеется 6 каналов исполнения операций, работающих параллельно, при этом до четырёх каналов могут быть использованы для чтения из памяти и до двух – для записи в память. Во всех шести каналах можно исполнять целочисленные арифметико-логические операции, в четырёх – операции с плавающей запятой. Каждый такт процессор может запустить по одной операции в каждый канал. У Эльбруса универсальный регистровый файл из 256 84-разрядных регистров; при этом есть отдельный регистровый файл для предикатов (однобитных значений) на 32 регистра. Имеется аппаратная поддержка циклов, в том числе с конвейеризацией, что повышает эффективность использования ресурсов процессора. Интересной особенностью Эльбруса является программируемое асинхронное устройство предварительной подкачки данных. У него есть встроенный буфер объемом 4 кБ для сокрытия задержек от доступа к памяти, и оно не задействует каналы исполнения операций, что позволяет освободить их для вычислний. Поддержка спекулятивных и условных (предикатированных) вычислений позволяет уменьшить число переходов и параллельно исполнять несколько ветвей программы. Широкая команда может при максимальном заполнении задавать в одном такте до 23-х операций (и более 33-х операций при упаковке операндов в векторные команды).

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

Также «Эльбрус» имеет несколько уникальных особенностей, выгодно отличающих его от зарубежных аналогов. Одна из них - специальное оборудование для работы в составе многопроцессорных систем. Это контроллер межъядерных взаимодействий и контроллер запросов MAU, передающий запросы от каждого из ядер в системный коммутатор, и контроллер когерентных сообщений, анализирующий запросы от коммутатора и передающий их нужным ядрам. В свою очередь, системный коммутатор осуществляет обслуживание абонентов согласно политике приоритетов, обеспечивая максимально возможную загрузку межпроцессорных линков, и независимость пакетных потоков между различными парами абонентов и независимость потоков командных пакетов различного типа друг от друга. Каждый кристалл имеет три канала межпроцессорного обмена, а также возможность работать в многопроцессорной системе с общей памятью – до четырёх процессоров «Эльбрус-4С» в одной системе без дополнительных схем, и до шестнадцати – с помощью выделенного чипа-коммутатора.

Обслуживание внешних интерфейсов организовано «классическим» способом – с помощью Контроллера Периферийных Интерфейсов (КПИ), играющего роль «южного моста». Он соединяется с процессором по выделенной шине с пропускной способностью 2 Гбит/с в каждую сторону и предоставляет как привычные всем PC-интерфейсы, так и специализированные интерфейсы для промышленного применения.

Технические характеристики КПИ

Год начала производства 2010
Техпроцесс, нм 130
Тактовая частота, МГц 250
Пропускная способность шины связи с процессором, Гбайт/с 2
Подсистема управления прерываниями 2 PIC + 1 IO_PIC
Таймеры системный, сторожевой
Число транзисторов, млн 30
Площадь кристалла, мм? 112
Корпус HFCBGA-1156
Потребляемая мощность, Вт 6
Диапазон рабочих температур, °С –60…+85
Наработка на отказ, ч > 100000
Интерфейсы
PCI-Express (версии 1.0a) 8 линий
PCI (версии 2.3) 32/64 бита, частота 33/66 МГц
Ethernet (1 Гбит/с) 1 порт
SATA 2.0 4 порта
IDE (PATA-100) 2 порта по 2 устройства
USB 2.0 2 порта
AC-97 2-канальное стерео
RS-232/485 2 порта
IEEE-1284 (с поддержкой DMA) 1 порт
Программируемые универсальные входы-выходы GPIO 16 сигналов
I?C 4 канала
SPI 4 устройства

Безопасность превыше всего

Но самой важной особенностью процессора «Эльбрус» является обеспечение безопасности. Мы не будем вдаваться в подробности «бэкдоров» систем на основе Intel, благо что на эту тему есть что почитать на просторах Сети. В частности, не секрет, что некоторые системы могут оснащаться супервизором на основе BIOS, позволяющим осуществлять удалённые контроль и управление компьютером через сеть, а также перехват произвольных данных. Причём не только работа, но и само наличие такого супервизора не поддаются определению практически никакими современными средствами, так как его функционирование осуществляется на уровне микрокодов RISC-ядра (см. выше о том, как устроен современный микропроцессор). Если ПК приобретается для домашнего применения, подобными проблемами можно не «заморачиваться» – вас, как того самого «неуловимого Джо», защищает факт несущественности ваших данных, которые просто никому не нужны. Но даже в этом случае будет обидно, если кто-то за океаном нажмёт некую «красную кнопку», после чего ваш ПК превратится в бесполезную груду железа. Да и возможное эмбарго на поставку даже таких, «дырявых» кристаллов со стороны стран Европы и США может существенно усложнить жизнь отечественным сборщикам ПК, а значит, и нам с вами. Учитывая текущее обострение внешнеполитической ситуации, подобный сценарий не представляется таким уж невероятным. А вот если вы собираете сеть для управления атомной электростанцией, или хотя бы металлургическим заводом, то даже самую малую возможность подобного развития событий желательно исключить в принципе. Конструируя парк ПК на основе «Эльбрус», заказчик получает всю техническую документацию, по которой можно проконтролировать отсутствие нежелательных модулей, и исходные тексты всего программного обеспечения, начиная от ОС, драйверов, и до приложений прикладного уровня. Помимо этого, существуют отдельные аппаратные средства управлением безопасностью. Всем уже набили оскомину сообщения о брешах в системе Windows и прикладных программах (последние, впрочем, не сильно афишируются). Наиболее частая причина – ошибки переполнения буфера, позволяющие злоумышленнику запустить на атакуемой системе произвольный код. Причина кроется в общей памяти, позволяющей хранить и данные, и код. Конечно, попытки решить проблему предпринимаются, например, такие, как широко разрекламированный Execute Disable Bit в процессорах Intel (или его аналог – No eXecute Bit в процессорах AMD), но даже эта защита обходится «на раз-два» (кому интересно – вновь обращаемся к Интернету). А неразделяемый стек – вообще ахиллесова пята всех AMD/Intel систем. Вариант, предложенный МЦСТ, – защищённый режим исполнения программ. Работа в нём происходит только с инициализированными данными, все обращения в память проверяются на принадлежность к допустимому диапазону адресов, обеспечивается межмодульная защита. Для поддержки такого режима имеется компилятор C/C++ и библиотека runtime (libc). В этом режиме обнаруживается более 98% ошибок времени выполнения, которые не удаётся диагностировать другими способами. Это позволяет не только создавать устойчивый ко взлому код, но и заметно облегчает написание любых программ, поскольку многие ошибки программирования, которые в ином случае остались бы незамеченными и привели бы к нестабильной работе программы, здесь обнаруживают себя на уровне аппаратуры и вызывают прерывание. Некоторым недостатком защищённого режима является снижение производительности примерно на 20%, что в отдельных случаях может быть нежелательно. Есть и другая проблема: практически весь существующий в среде open source код написан так, что использует приёмы программирования, не регламентированные стандартом языка Си. Поэтому запустить ядро ОС или приложения типа LibreOffice полностью в защищённом режиме пока что невозможно – и из-за стиля программирования, и из-за наличия в коде скрытых ошибок, которые придётся исправлять. Но можно запускать в защищённом режиме отдельные небольшие программы, наиболее критичные с точки зрения информационной безопасности, и они будут работать со стопроцентной надёжностью. Даже в обычном, «незащищённом» режиме работы «Эльбруса», надёжность системы ко взлому значительно повышается, поскольку стек связующей информации (цепочка адресов возврата при процедурных вызовах) отделен в нём от стека пользовательских данных и недоступен из программного кода. Это заметно затрудняет такой популярный вид атаки, как подмена адреса возврата.

Модули на микропроцессорах «Эльбрус»

В настоящее время ЗАО «МЦСТ» выпускает несколько готовых модулей на основе процессоров R1000 архитектуры SPARC, а также серию модулей на основе «Эльбрус». Каждый из модулей изготовлен в виде системной платы с набором необходимых внешних интерфейсов, по сути представляя собой готовый компьютер, требующий лишь подключения источника питания и накопителей для хранения данных, да и то не всегда (зачастую флеш-диск достаточного объёма распаян прямо на плате). Он выполнен в стандартном форм-факторе потребительского либо промышленного стандарта, и устанавливается в корпус заказчика. В настоящее время модули комплектуются процессорами «Эльбрус-2С+», а с началом серийного выпуска «Эльбрус-4С» элементная база будет обновлена.

В каталоге компании «МЦСТ» представлены следующие модули: МВКУБ/С, МВК/U, Монокуб, КУБ-COM, МВ3S/C-К. Первый из них содержит два процессора, остальные - один. Каждый модуль оснащён картой CompactFlash, использующейся либо для хранения системы двоичной трансляции, либо для установки ОС, причём последний из перечисленных модулей содержит также дополнительный SSD-диск стандарта mSATA. Пусть вас не вводит в заблуждение слово «куб» в названиях некоторых из них: форм-фактор конструктивного исполнения - Compact PCI, COM Express type 2 и mini-ITX, напоминающие в лучшем случае прямоугольный параллелепипед, а слово «куб» выбрано, видимо, только «для красоты». Ещё один модуль, МВ3С2/C, не содержит процессора, а предоставляет лишь набор периферийных интерфейсов. Заметим, что интерфейсных модулей существует большое множество, но мы не стали перечислять их все для экономии места.

Вычислительные комплексы

Этим научным термином в компании «МЦСТ» называют любые законченные компьютеры на основе процессора «Эльбрус», от ноутбука и до мощного сервера. Да, вы не ослышались: ноутбук на этом кристалле уже выпускается и носит гордое название «Носимый терминал НТ-ЭльбрусS». Конечно, ему пока ещё далеко по изяществу до Macbook Air, своим брутальным видом он напоминает, скорее, защищённые ноутбуки фирмы Panasonic или аналогичные.

НТ-ЭльбрусS

Характеристики «НТ-ЭльбрусS» достаточно скромные, но вполне достаточные для запуска «офиса» и подобных программ. А вот прочность конструкции находится на высоком уровне: аппарат не только способен нормально работать в широком диапазоне температуры (от -10 до +55°С) и влажности (вплоть до полного погружения под воду до глубины 1 м), но и вибрации, ударных нагрузках (вплоть до падения на бетон с высоты 0,75 м).

Полезным может оказаться и наличие универсального приёмника сигналов спутниковой навигации (ГЛОНАСС/GPS), а при необходимости может быть установлен адаптер Wi-Fi. Вот разве что разрешения экрана - 1024 на 768 точек - маловато для комфортной работы, да и батарею можно было бы поставить помощнее, так как заряда штатной хватает всего на 1 час.

Монокуб-РС

Другой ВК - «Монокуб-PC» - вполне сопоставим с недорогим офисным ПК, да и по размерам весьма похож на него. 4 ГБ оперативной памяти и 500 ГБ жёсткого диска, разумеется, могут быть заменены на другие стандартные компоненты нужного объёма, благо что интерфейсы внутри самые что ни на есть общедоступные: слоты DDR2 и разъёмы SATA II (правда, DDR2 смотрится в наши дни некоторым анахронизмом, да и по цене уже проигрывает DDR3). К нему подключается любой стандартный монитор с коннектором VGA или DVI, а также клавиатура и мышь. Лишь наличие интерфейсов GPIO слегка намекает нам на то, что перед нами не обычный офисный ПК, а изделие для лабораторно-промышленного применения.

КМ4-Эльбрус

Ещё одна традиционная компоновка - моноблок КМ4-Эльбрус, или конструкция «всё-в-одном». Это ПК, собранный в общем корпусе с монитором. Его экран обладает уже вполне достойным разрешением 1600 на 900 точек, более того, он сенсорный! Корпус, правда, несколько толстоват, но по большому счёту, малая толщина его - лишь дань моде. На рабочий стол он впишется вполне нормально, а при желании к нему можно без дополнительных средств подключить второй монитор, с разрешением вплоть до 1920 на 1440.

Экспериментальный 4-процессорный сервер на базе процессора Эльбрус-4С

И ещё один ВК, «Эльбрус-3С», является мощным модульным сервером с 16-ю процессорами (4 процессорных модуля по 4 процессора), 128 ГБ ОЗУ, встроенным коммутатором Gigabit Ethernet и оптическим контроллером сети. Он рассчитан на высокопроизводительные вычисления, а благодаря модульной конструкции, его конфигурация может сильно различаться, в зависимости от требований заказчика.

Вычислительные комплексы на основе микропроцессоров «Эльбрус»

Тесты, тесты, тесты

Наверняка многим из вас не терпится узнать, на что способны новые кристаллы в плане производительности? Есть ли у новой архитектуры преимущества в реальных задачах? Чтобы выяснить это, мы подготовили три «боевых» теста: архивацию и распаковку архиватором 7-zip, обработку видеосигнала цифровым фильтром, и шифрование информации по алгоритму ГОСТ. Такой выбор задач был сделан отчасти из-за того, что все они реализованы в виде приложений для ОС Linux, способной функционировать как на процессорах Эльбрус, так и на чипах производства Intel, что позволяет провести сравнительный анализ, а отчасти потому, что эти задачи входят в число наиболее типичных применений разработанных ВК (не забываем, что основными заказчиками оных являются различные предприятия). Характеристики тестовых стендов

Характеристики тестовых стендов приведены в таблице. Отметим лишь, что в день тестирования сервер на четырёх процессорах «Эльбрус-4С» с частотой 800 МГц оказался занят, и нам предложили такой же, работающий на частоте 700 МГц, что несколько повлияло на результаты. В принципе, ничто не мешает пересчитать их, умножив или разделив на 8/7, так как производительность сервера линейно зависит от частоты. Также следует иметь в виду, что все тесты выполнялись в однопоточном режиме; для хорошо распараллеливаемых задач, а к ним принадлежат все упомянутые тесты, с ростом числа задействованных ядер производительность будет возрастать практически линейно. Соперником наших героев, а также точкой отсчёта, послужил сервер на процессоре Intel Core i7-2600, работающем на частоте 3400 МГц.

Коммуникационными портами компьютеры "Эльбрус" не обделены

Первый тест, архивация по алгоритму 7-zip, является, пожалуй, антипримером, с точки зрения демонстрации эффективности отечественной архитектуры. Алгоритм 7-zip довольно сложен и плохо поддаётся оптимизации, поэтому общая скорость упаковки, измеряемая в мегабайтах в секунду (т.е. чем лучше производительность, тем больше числа), почти точно пропорциональна тактовой частоте, которая у российских кристаллов сильно уступает продукции лидера мирового процессоростроения. При распаковке ситуация чуть лучше: в самом деле, если частоты Core i7 и «Эльбрус-2С+» различаются в 3400/500=6,8 раза, то результаты теста лишь в 33,437/6,296=5,31 раза, что говорит о том, что работая на той же частоте, что и процессор Intel, «Эльбрус» смог бы его обойти!

С фильтрацией видеосигнала наш кристалл справляется лучше. Недаром эта область являлась одной из профильных при его разработке. Но не следует полагать, что тут задействованы дополнительные ядра встроенного DSP - так было бы «нечестно» по отношению к сопернику, поэтому тестовая программа использует только ядра общего назначения. Здесь «Эльбрус-2С+» медленнее лишь в 2,5 раза (тест измеряет время выполнения одной и той же задачи, так что здесь лучшей производительности соответствует меньшее число). «Эльбрус-4С» практически подобен своему собрату, выдавая результат во столько раз лучше него, во сколько раз различаются их тактовые частоты).

Но самый выигрышный результат оказался при шифровании по алгоритму ГОСТ, недаром он тоже разрабатывался нашими специалистами. Здесь «Эльбрус-2С+» выполнил задачу на 30% быстрее, несмотря на почти семикратную разницу в частоте, а «Эльбрус-4С» - почти в 2 раза быстрее! Что говорит о том, что эффективность отечественной архитектуры на подобных задачах лучше почти в 9 раз. Подробности можно лицезреть на скриншотах окна терминала. Не удивляйтесь, увидев неожиданное сообщение cpuinfo о странном процессоре «Эльбрус-2S»: именно так планировалось ранее назвать новый четырёхъядерный чип, но в последний момент он был переименован с целью отображения в названии количества ядер. Это же «старое» название можно прочесть и на фотографии крышки корпуса кристалла, массово отштампованной до этого момента.

Сравнительные результаты тестирования микропроцессоров

Вперёд, к светлому будущему?

Итак, всё выглядит не так уж и плохо? И да, и нет. Несмотря на успешный старт, у МЦСТ осталась ещё масса нерешённых проблем. Главная из них - поиск производственных мощностей для выпуска чипов. Пока «Эльбрус-2С+» производится на фабриках партнёров из Юго-Восточной Азии, что не очень-то вписывается в картину России, как независимой интеллектуальной державы. К тому же для изготовления нового чипа, «Эльбрус-4С», требуется более «тонкий» процесс с нормами литографии 65 нм. Однако, перечитывая новости прессы, можно заметить, что зеленоградский завод полупроводниковых компонентов «Микрон» не так давно разработал новую для России технологию – как раз 65 нм – и закупает под нее дополнительное оборудование в свою производственную линию. Очевидно, что именно туда планируется перенести производство «Эльбрус», но «гладко бывает только на бумаге»: чтобы запустить линию и наладить серийное производство, как правило, требуется не меньше двух лет, а то и заметно больше. К чести предприятия "Микрон" стоит отметить, что задача освоения нового технологического процесса - дело далеко не тривиальное (о том, как организовано производство процессоров мы расскажем в рамках отдельного репортажа).

Вторая актуальная проблема - рост тактовой частоты. Чтобы на равных конкурировать с мировыми производителями, неплохо бы поднять её хотя бы вдвое, а лучше впятеро. Казалось бы, этого можно достичь дальнейшим уменьшением норм техпроцесса, но не всё так просто. Сменив легковушке 100-сильный двигатель на 1000 л.с., не увеличить скорость со 150 до 1500 км/ч. Необходима существенная переработка топологии под новую частоту, отладка, тесты... Да и возможности производства в нашей стране на таких линиях пока призрачны. Проще линейно наращивать количество ядер, добавив кеш-памяти и слегка повышая частоту (по мере оптимизации внутренних узлов). Примерно так и сконструирован «Эльбрус-8С», разработка которого уже идёт полным ходом и должна завершиться в будущем году. Помимо повышения частоты до 1,3 ГГц, в нём вдвое (по сравнению с «Эльбрусом-4С») увеличено количество ядер, и во столько же раз - кеш-памяти, но не только: количество вычислительных устройств с плавающей запятой также возросло с 4-х до 6-ти, что дополнительно позволит выжать из него чуточку мощности, доведя итоговую производительность до впечатляющей цифры в 250 Гфлопс. Правда, уменьшение норм техпроцесса всё же планируется, что позволит сохранить или даже уменьшить при этом суммарное тепловыделение кристалла.

А что же дальше? Увидим ли мы когда-нибудь на прилавках обилие полностью, на 100%, отечественных ПК? Если и увидим, то очень не скоро. Несмотря на некоторые явные преимущества, по соотношению главных потребительских качеств «производительность/цена» наш «Эльбрус» всё ещё проигрывает конкурентам, а доплачивать за сомнительные преимущества в виде защищённого режима или эффективного шифрования массовый потребитель вряд ли захочет. Другое дело - корпоративный клиент, для которого надёжность работы и наличие полной документации является определяющим критерием. А так как всё равно в большинстве случаев систему для него придётся разрабатывать «под заказ», то здесь отечественный производитель может даже предложить более выгодную цену, чем зарубежный партнёр. Поэтому клиентов у МЦСТ пока хватает.

Что ж, пожелаем им удачи! И будем надеяться на то, что наша страна снова станет «супердержавой», как это уже было не раз.

Вчера прочитала пару статей о том, что 75% наемных работников в России находятся у черты бедности. И, знаете ли, поверила. Потому что вроде бы серьезные издания. И ссылаются на Росстат, на ведущего сотрудника соответствующего НИИ Любовь Уманец.* Ссылка на статьюИ со вчерашнего дня эта ужасающая для нашей страны статистика не выходит у меня из головыДанные... Число контрактников в армии России впервые превысило число призывников
Важнейший перелом, если верить заявлению министра обороны Сергея Шойгу, произошел в отношении российского общества к армии. Число контрактников впервые превысило число призывников, а главное – иссяк поток бегущих из вооруженных сил. Наоборот, армия не может взять в свои ряды всех желающих. К 1 декабря Минобороны выполнит требование верховного...
Новейший танк России «Армата»
Само слово «армата» происходит от латинского arma («оружие»). Так в XIV веке на Руси называли примитивные пушки. Однако надо понимать, что шифры ОКР очень часто не несут никакой смысловой нагрузки. В именах нового оружия можно встретить и название садового вредителя, досаждающего на даче ответственному за выбор шифра офицеру, и драгоценных камней, и рек, цветов, и...

Ранее уже началось производство первой серии серверов «Эльбрус 4.4», которые были разработаны организацией МЦСТ с участием процессоров «Эльбрус-4С». Теперь же производитель расширил свой ассортимент первым персональным компьютером - Эльбрус-401.

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

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

То, что компьютер с отечественным процессором появился именно сейчас, имеет неплохую перспективу в будущем. По мнению представителей МЦСТ, в скором времени подобные устройства значительно подешевеют. К 2020 году планируется сделать компьютеры более массовым, что отлично совпадает с планами Минпромторга по импортозамещению, касающихся не только программного обеспечения, но и электроники.

Работает процессор Эльбрус-4С на тактовой частоте 800 МГц, оперативная память - 24 Гб, при чем ее можно увеличить до 96 ГБ. Жесткий диск имеет объем 1ТБ, mSATA - 128ГБ. Материнская плата также имеет набор периферийных интерфейсов. Видеокарта здесь не отечественного производства - штатная AMD Radeon 6000. Операционная система собственная - ОС Эльбрус, построенная на основе Linux. Некоторые приложения имеют открытый исходный код. Также есть возможность установки других операционных систем - Windows XP и вариации Linux. Сейчас идет прием заявок на приобретение компьютера, но только от юридических лиц.

Характеристики :

    четырехъядерный микропроцессор Эльбрус-4С (800 МГц, 2 МБ кэша) с производительностью до 50 Гфлопс;

  • 24 ГБ (3x 8 ГБ) оперативной памяти DDR3-1600;
  • жесткий диск SATA 3 Гбит/с объемом 1 ТБ;
  • mSATA SSD объемом 128 ГБ;
  • интегрированное видеоядро Silicon Motion SM718 16 МБ (2D, 1920x1080);
  • дискретная видеокарта Radeon серии HD 6000;
  • пишущий DVD-привод;
  • 450 Вт блок питания;
  • корпус форм-фактора Mini-Tower.

Мнение Байон

Компьютер построен на различной с компьютерами Intel архитектуре и предназначен в большей степени для решения узкоспециализированных задач. Поэтому предлагаем не смущаться невысоким на первый взгляд показателем частоты процессора - 800МГц. Недостающие характеристики российского процессора с успехом компенсируются преимуществами в архитектуре отечественного устройства.

Всем нам знакомы процессоры Intel Pentium. Существует мнение, что свое название он получил в честь российского ученого Владимира Мстиславовича Пентковского, который руководил разработкой архитектуры процессора Pentium III, а ранее работал в МЦСТ и разрабатывал советский суперкомпьютер Эльбрус.

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



    Эльбрус-8С - новый 8-ядерный процессор МЦСТ с VLIW-архитектурой. Мы тестировали инженерный образец с частотой 1.3 ГГц. Возможно, в серийном выпуске она еще возрастет.



    Приведем сравнение характеристик Эльбрус-4С и Эльбрус-8С.


    Эльбрус-4С Эльбрус-8С
    Тактовая частота, МГц 800 1300
    Число ядер 4 8
    Число операций за такт (на ядро) до 23 до 25
    L1 кэш, на ядро 64 Кб 64 Кб
    L2 кэш, на ядро 2 Мб 512 Кб
    L3 кэш, общая - 16 Мб
    Организация оперативной памяти До 3 каналов DDR3-1600 ECC До 4 каналов DDR3-1600 ECC
    Технологический процесс 65 нм 28 нм
    Количество транзисторов 986 млн. 2730 млн.
    Ширина SIMD инструкции 64 бита 64 бита
    Поддержка многопроцессорных систем до 4 процессоров до 4 процессоров
    Год начала производства 2014 2016
    Операционная система ОС “Эльбрус” 3.0-rc27 ОС “Эльбрус” 3.0-rc26
    Версия компилятора lcc 1.21.18 1.21.14

    В Эльбрус-8С более чем в полтора раза повысились тактовая частота, вдвое увеличилось число ядер, а также произошло усовершенствование самой архитектуры.


    Так, например, Эльбрус-8С может исполнять до 25 инструкций за 1 такт без учета SIMD (против 23 у Эльбрус-4С).


    Важно : нами не проводилось никакой специальной оптимизации под Эльбрус-8С. Была задействована библиотека EML, однако объем оптимизаций под Эльбрус в наших проектах сейчас явно меньше, чем под другие архитектуры: там он постепенно наращивался в течение нескольких лет, а платформой Эльбрус мы занимаемся не так давно и не столь активно. Основные времязатратные функции, конечно же, были оптимизированы, но вот до остальных пока не дошли руки.

    Распознавание паспорта РФ

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


    Предоставленная нам версия ОС Эльбрус и компилятора lcc не потребовали никаких специальных изменений в исходном коде и мы без каких-либо трудностей собрали наш проект. Отметим, что в новой версии появилась полная поддержка С++11 (она также появилась и в свежих версиях lcc для Эльбрус-4С), что не может не радовать.


    Для начала мы решили проверить, как работает распознавание паспорта РФ, о котором мы уже писали , на Эльбрус-8С. Мы провели тестирование в двух режимах: поиск и распознавание паспорта на отдельном кадре (anywhere-режим) и на видеоролике, снятом с веб-камеры (webcam-режим). В anywhere режиме распознавание разворота паспорта выполняется на одном кадре, причем паспорт может находиться в любой части кадра и быть произвольным образом ориентированным. В режиме webcam выполняется распознавание только страницы паспорта с фото, причем обрабатывается серия кадров. При этом предполагается, что строки паспорта горизонтальны и паспорт слабо смещается между кадрами. Полученная с разных кадров информация интегрируется для повышения качества распознавания.


    Для тестирования мы взяли по 1000 изображений для каждого из режимов и замеряли среднее время работы распознавания (т.е. время без учета загрузки картинки) при запуске в 1 поток и запуске с распараллеливанием. Полученное время работы приведено ниже в таблице.



    Результаты для однопоточного режима вполне соответствуют ожидаемым: помимо ускорения за счет повышения частоты (а кратность частот 4С и 8С равна 1300 / 800 = 1.625), заметно небольшое ускорение за счет усовершенствования архитектуры.


    В случае запуска на максимальном числе потоков ускорение для обоих режимов составило 1.7. Казалось бы, число ядер в Эльбрус-8С вдвое больше, чем в 4С. Так где же ускорение за счет дополнительных 4 ядер? Дело в том, что наш алгоритм распознавания активно задействует только 4 потока и слабо масштабируется дальше, поэтому прирост производительности совсем незначительный.


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



    Для anywhere-режима полученное ускорение приблизилось к ожидаемому ускорению в ~3.6 раза, не дотянув до него из-за того, что мы учитывали время загрузки картинки из файла. В случае с webcam-режимом влияние времени загрузки еще больше и поэтому ускорение получилось более скромным - 2.5 раза.

    Детекция автомобилей

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


    Для нашего примера мы решили взять задачу детекции автомобилей, движущихся в попутном направлении. Подобный детектор может использоваться в системах автоматического управления транспортными средствами, в системах распознавания автомобильных номеров и т.д. Не долго думая, мы отсняли видео для обучения и тестирования с помощью авторегистратора неподалеку от нашего офиса. В качестве детектора мы использовали каскадный классификатор Виолы-Джонса . Дополнительно мы применили экспоненциальное сглаживание положений найденных автомобилей для тех из них, которые мы наблюдаем несколько кадров подряд. Стоит отметить, что детектирование выполняется только в прямоугольнике ROI (region of interest), который занимает не весь кадр, поскольку малоосмысленно пытаться детектировать внутренности нашего автомобиля, а также машины, не полностью попадающие в кадр.


    Таким образом, наш алгоритм состоял из следующих шагов:

    1. Вырезание прямоугольника ROI по центру кадра.
    2. Преобразование цветного изображения ROI в серое.
    3. Предпосчет признаков Виолы-Джонса.
      На этом этапе изображение подвергается масштабированию, строятся карты вспомогательных признаков (например, направленных границ), а также вычисляются кумулятивные суммы по всем признакам для быстрого подсчета хааровских вэйвлетов.
    4. Запуск классификатора Виолы-Джонса на множестве окон.
      Здесь с некоторым шагом перебираются прямоугольные окна, на которых запускается классификатор. Если классификатор выдал положительный ответ, то произошла детекция объекта, т.е. изображение внутри окна соответствует автомобилю. В этом случае выполняется уточнение области изображения, в которой находится объект: в окрестности первичной детекции выделяются окна того же размера, но с меньшим шагом и также подаются на вход классификатора. Все найденные объекты сохраняются для дальнейшей обработки. Данная процедура повторяется для нескольких масштабов входного изображения.
      Этот этап собственно и составляет основную вычислительную сложность задачи и распараллеливание было произведено именно для него. Мы использовали библиотеку tbb для автоматического выбора эффективного числа потоков.
    5. Обработка массива детекций, полученного после применения детектора. Поскольку ряд полученных детекций могут быть очень близкими и отвечать одному и тому же объекту, мы объединяем детекции, имеющие достаточно большую площадь пересечения. В результате получаем массив прямоугольников, которые указывают положение обнаруженных автомобилей.
    6. Сопоставление детекций на предыдущем и текущем кадрах. Мы считаем, что был задетектирован один и тот же объект, если площадь пересечения прямоугольников составляет больше половины от площади текущего прямоугольника. Выполняем сглаживание положения объекта по формулам:
      x i = x i + (1-α)x i -1
      y i = y i + (1-α)y i -1
      w i = w i + (1-α)w i -1
      h i = h i + (1-α)h i -1
      где (x , y )--- координаты верхнего левого угла прямоугольника, w и h - его ширина и высота соответственно, а α - постоянный коэффициент, подобранный экспериментально.


    Здесь и далее для оценки fps (frame per second) использовалось среднее время работы по 10 запускам программы. При этом учитывалось только время обработки изображений, поскольку сейчас мы работали с записанным роликом, и изображения просто загружались из файла, а в реальной системе они могут, например, поступать с камеры. Оказалось, что детекция работает с весьма приличной скоростью, выдавая 15.5 fps на Эльбрус-4С и 35.6 fps на Эльбрус-8С. На Эльбрус-8С загрузка процессора оказывается далеко не полной, хотя в пике задействованы все ядра. Очевидно, это связано с тем, что не все вычисления в этой задаче были распараллелены. Например, перед применения детектора Виолы-Джонса мы выполняем достаточно тяжеловесные вспомогательные преобразования каждого кадра, а эта часть системы работает последовательно.


    Теперь пришло время демонстрации. Интерфейс приложения и отрисовка выполнены с помощью стандартных средств Qt5. Никакой дополнительной оптимизации не проводилось.


    Эльбрус-4С



    Эльбрус-8С


    Визуальная локализация

    В этом приложении мы решили продемонстрировать визуальную локализацию на основе особых точек. Использовав панорамы Google Street View с GPS-привязкой, мы научили нашу систему узнавать местонахождение камеры без использования данных о её GPS-координатах или другой внешней информации. Такая система может использоваться для беспилотников и роботов в качестве резервной системы навигации, для уточнения текущего местоположения или для работы в системах без GPS.


    Сначала мы обработали базу панорам с GPS-координатами. Мы взяли 660 изображений, покрывающих приблизительно 0.4 км^2 московских улиц:




    Затем мы создали описание изображений с помощью особых точек. Для каждого изображения мы:

    1. Нашли особые точки для 3 масштабов кадра (сам кадр, уменьшенный в 4/3 раза кадр и уменьшенный вдвое кадр) алгоритмом YAPE (Yet Another Point Detector) и посчитали для них RFD-дескрипторы .
    2. Сохранили его координаты, набор особых точек, их дескрипторы. Поскольку затем мы будем сравнивать дескрипторы особых точек текущего кадра со значениями дескрипторов из нашей базы, удобно хранить дескрипторы в дереве, используя расстояние Хэмминга в качестве метрики. Общий размер сохраненных данных оказался чуть больше 15 Мб.

    На этом приготовления закончены, теперь перейдем к тому, что происходит непосредственно во время работы программы:

    1. Преобразование цветного изображения в серое.
    2. Выполнение автоконтраста.
    3. Поиск особых точек для трех масштабов кадра (также с коэффициентами 1, 0.75 и 0.5) с помощью алгоритма YAPE и подсчет для них RFD-дескрипторов. Эти алгоритмы частично распараллелены, однако довольно большая часть вычислений осталась последовательной. Кроме того, они пока не оптимизировались под платформу Эльбрус.
    4. Для полученного набора дескрипторов выполняется поиск похожих дескрипторов среди сохраненных в дереве, и происходит определение несколько наиболее похожих кадров. Для различных дескрипторов поиск в дереве распараллелен с помощью tbb. При этом для первых 5 кадров видео мы выбираем 10 ближайших кадров, а затем берем только 5 кадров.
    5. Выбранные кадры проходят дополнительную фильтрацию, чтобы убрать “выбросы”, ведь траектория транспортного средства обычно непрерывна.

    Входные данные: последовательность цветных кадров размера 800х600 пикселей.


    Такая система выдает 3.0 fps на Эльбрус-4С и 7.2 fps на Эльбрус-8С.


    Покажем, как же оно работает:


    Эльбрус-4С



    Эльбрус-8С


    Заключение

    Для удобства основные характеристики Эльбрусов и полученные результаты по нашим программам собраны в таблице:



    Результаты для распознавания паспорта получились довольно скромные, поскольку наше приложение в своем текущем виде не может эффективно задействовать более 4 потоков. Похожая ситуация с детекцией автомобилей и визуальной локацией: алгоритмы имеют нераспараллеленные участки, поэтому не приходится ожидать линейного масштабирования при росте числа ядер. Однако там, где нет ограничений на загрузку приложениями всех ядер процессора, мы наблюдаем рост в 3.2 раза, это близко к теоретическому пределу в 3.6 раз. В среднем разница производительности между поколениями процессоров МЦСТ на нашем наборе задач составляет порядка 2-3 раз, и это очень радует. Только за счёт увеличения частоты и совершенствования архитектуры мы наблюдаем выигрыш более чем в 1.7 раза. МЦСТ быстро нагоняет Intel с ее стратегией в добавлении 5% в год.


    В процессе тестов под полной нагрузкой мы не испытывали проблем с зависаниями и падениями, что говорит о зрелости процессорной архитектуры. Подход VLIW, развиваемый в Эльбрусах-8С, позволяет добиваться работы в реальном времени различных алгоритмов компьютерного зрения, а библиотека EML содержит весьма солидный набор математических функций, которые позволяют экономить время тем, кто не собирается оптимизировать код сам. В заключение мы провели еще один эксперимент, запустив сразу 3 демонстрации (локализацию, поиск машин и поиск лиц) на одном процессоре Эльбрус-8С и получив среднюю загрузку процессора около 80%. Тут уж без комментариев.



    Хотим сказать большое спасибо компании и сотрудникам МЦСТ и ИНЭУМ Брука за возможность попробовать Эльбрус-8С и поздравить их - восьмерка более чем достойный процессор и пожелать им успехов!

  • ocr-технологии
  • Добавить метки Одним из проектов компании стала разработка первого российского настольного компьютера на базе процессора «Эльбрус-4С». Он получил название «АРМ Эльбрус-401» (где АРМ расшифровывается, как автоматизированное рабочее место). Модель разработана под офис в корпусе стандарта MiniTower. Но может применяться в разных сферах с повышенными требованиями к информационной безопасности.

    У компьютера есть технологический процесс 65 нм с тактовой частотой 800 Гц, порты SATA-2 и USB 2.0 , предустановленный SSD 120 ГБ с интерфейсом mSATA и поддержкой DDR3-1600 с ECC. Базовая конфигурация предлагается 24 ГБ оперативной памяти (с возможностью расширения до 96 ГБ). Среди особенностей архитектуры «АРМ Эльбрус-401» можно выделить следующие: наличие 6 параллельно работающих каналов арифметико-логических устройств; регистровый файл из 256 84-разрядных регистров; аппаратную поддержку циклов; поддержку спекулятивных вычислений и однобитовых предикатов; команду, которая может задать в одном такте до 23 операций при максимальном заполнении. Также в компьютер установлена видеокарта AMD Radeon серии 6000.

    Компьютер «АРМ Эльбрус-401»

    Процессор нового поколения - «Эльбрус-8С»

    Разрабатывает процессор «Эльбрус-8С» компания МЦСТ при участии Институт электронных управляющих машин (ИНЭУМ) им. И.С. Брука. Архитектура, схемотехника и топология микропроцессора были созданы российскими специалистами. У процессора восемь ядер с улучшенной 64-разрядной архитектурой «Эльбрус». Тактовая частота достигает 1,3 ГГц, объем кеш-памяти второго и третьего уровня - 4 и 16 МБ. Предполагаемая производительность достигает 250 GFLOPS.

    Технические характеристики «Эльбрус-8С»

    У компьютера присутствует своя архитектура «Эльбрус», которая разработана в ЗАО «МЦСТ». Векторные ускорители систем команд помогают сделать шифрование и обработку сигналов более быстрым.

    Взаимодействие аппаратной части с ОС происходит через собственный микрокод BIOS. Процессор совместим с дистрибутивами Linux, FreeBSD, QNX, Windows XP , но рекомендованная операционная система «Эльбрус» на базе ядра Linux 2.6.33. Применение специализированных средств разработки (оптимизирующие компиляторы с языков C и C++, Фортран, Java и т.д.) дает возможность оптимизировать код программы с учетом архитектуры «Эльбрус».

    Процессор «Эльбрус-8С»

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

    «Эльбрус-8С» должен работать в паре с КПИ 2 - контроллером периферийных интерфейсов российского производства.

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

    История создания

    В настоящее время всего в нескольких странах мира проектируют компьютеры на микропроцессорах собственной разработки - в США, Англии, Японии и Китае. Очевидно, что в рамках безопасности и импортозамещения России также требуется свой процессор, достаточный для обеспечения требований вооруженных сил, силовых ведомств, органов управления и образования. А по возможности - и коммерциализация продукта. После десятилетий активных работ ученым и инженерам Московского центра Спарк-технологий (МЦСТ) не стыдно представить новейшую разработку 2014-15 годов: восьмиядерный процессор «Эльбрус 8с». Но до этого исторического события был пройден длинный путь теоретических расчетов и практических изысканий.

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

    «Эльбрус-1»

    Идея архитектурной линии, впоследствии заложенной в российский процессор «Эльбрус», родилась в 1969 году. Поводом для разработок послужила необходимость «интеллектуализации» стратегических систем. Главным конструктором стал В. С. Бурцев, выдающийся специалист по вычислительной технике, впоследствии академик РАН.

    В 1979 году в ИТМ и ВТ госкомиссии было представлено первое поколение многопроцессорного вычислительного комплекса (МВК) «Эльбрус». Процессор был спроектирован на базе TTL-логики. Система использовалась в военной промышленности.

    «Эльбрус-2»

    Через шесть лет успешно прошло испытание второе поколение МВК «Эльбрус». Процессор и новая были полностью отечественной разработки. Система базировалась на быстродействующих с эмиттерно-связанной логикой серии ИС-100. Производительность «Эльбрус-2» в десятипроцессорной конфигурации составляла 125 млн. операций в секунду.

    МВК строился по модульному принципу с повышенной надежностью. Благодаря быстродействию и отказоустойчивости комплекс использовался много лет в ключевых объектах стратегических систем. Уникальные для того времени характеристики МВК достигались внедрением и развитием ряда передовых идей в организации вычислительного процесса.

    «Эльбрус-3»

    Следующим этапом (1986-1994) стало создание третьего поколения МВК «Эльбрус». Процессор стал еще более мощным, элементная база - более совершенной. Руководителем проекта выбрали член-корреспондента АН Б. А. Бабаяна. Кстати, он внес фундаментальный вклад в разработку МВК «Эльбрус-1» и «Эльбрус-2».

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

    Новейшее время

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

    Проектной основой первой серии стала открытая архитектура Scalable Processor Architecture (SPARC), специфицированная корпорацией Sun Microsystems. На ее основе были созданы процессоры семейства «R».

    Базой второй серии стала оригинальная архитектура «Эльбрус», развивающая принципы, которые были апробированы и заложены в МВК-3 (первоначально она именовалась «архитектура E2k»). Всего было создано четыре основных типа процессоров. Итак, «Эльбрус» (процессор): сравнение моделей приведено в таблице ниже.

    Год создания

    Тактовая частота

    Техпроцесс

    Количество ядер

    Производительность

    Эльбрус-3М1

    Эльбрус-S

    Эльбрус-2С+

    Эльбрус-4С

    Год создания

    Тактовая частота

    Техпроцесс

    Количество ядер

    Производительность

    «Эльбрус-4с»

    Одной из последних удачных разработок компании МЦСТ стал процессор «Эльбрус-4с». Его архитектура основана на оригинальной разработке, базой для которой послужила микроархитектура VLIW. За процессы вычисления отвечают 4 ядра по 800 МГц, кэш-память по 2 Мб на каждом ядре.

    Несмотря на кажущуюся архаичность в плане технологии производства (большие размеры, небольшая частота, техпроцесс «прошлого века» 65 нм), эффективность электронного устройства сравнима с процессорами Intel серии «i». При меньшем потреблении мощности (45 Вт) его производительность составляет до 50 Гфлопс. Для сравнения: старшая модель Extreme Edition имеет производительность 53 Гфлопс при гораздо больших частотах и энергопотреблении. Этот современный русский процессор «Эльбрус» 2014 года выпуска прошел положенные испытания и вышел в серию.

    «Эльбрус-8С»

    Похоже, время эволюции закончилось, настал черед революционного для отечественной микроэлектроники прорыва. ЗАО «МЦСТ» совместно с Институтом электронных управляющих машин разработало и выпустило инженерные образцы продукта нового поколения. К промышленному производству готовится процессор «Эльбрус 8с», создаваемый по 28-нанометровому техпроцессу.

    Работать устройство будет в паре с контроллером также отечественной разработки КПИ-2. Хотя контроллер пока выпускается по 65 нм техпроцессу, он поддерживает три гигабитных сетевых контроллера Ethernet, 20 линий 2.0, восемь USB-портов 2.0, восемь SATA-портов. Обмен данными с процессором составляет 16 Гб/сек.

    Технические характеристики

    Производитель раскрыл основные характеристики новейшей системы «Эльбрус»:

    • Процессор - 8 ядер без гипертрединга.
    • Площадь кристалла - 350 мм 2 .
    • Кэш второго уровня для каждого ядра - 512 Кв.
    • Кэш третьего уровня является общим - 16 Мб.
    • Исполнение за такт - 30 операций.
    • Частота тактовая - 1,3 ГГц, при этих параметрах гарантируется бесперебойная работа всех ядер неограниченное время, даже при стопроцентной загрузке.
    • Производительность (пиковая) - 250 Гфлопс.
    • Мощность - 60-90 Вт.
    • Лицензионная независимость от Intel, при этом обеспечена поддержка основных операционных систем с архитектурой x86/x86-64.

    Как видим, российский процессор "Эльбрус" последнего поколения в пять раз производительнее модели 4С.

    Архитектура

    В качестве важнейшего результата компания ЗАО МЦСТ разработала оригинальную микропроцессорную архитектуру «Эльбрус». Процессор ориентирован на получение максимальной для данных аппаратных ресурсов показателей производительности. В общей классификации она относится к категории архитектур, использующих принцип широкого командного слова VLIW (Very Large Instruction Word), когда компилятор формирует для параллельного исполнения последовательности групп команд (широкие командные слова), в которых отсутствуют зависимости между командами внутри группы и сведены к минимуму зависимости между командами в разных группах.

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

    Наряду с эффективным использованием параллелизма операций в архитектуре устройства «Эльбрус» заложена реализация и других видов (уровней) параллелизма, свойственных вычислительному процессу:

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

    Совместимость с архитектурой x86

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

    Практическое применение

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

    Между тем, система позволяет устанавливать привычные Windows и Linux, что открывает путь если не к рядовому потребителю, то к корпоративному сектору. Компания МЦСТ предлагает защищенные компьютеры и серверы, способные функционировать в неблагоприятных окружающих условиях.



    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: