ПК Эльбрус. Мифы и реальность. "ЭВМHISTORY": Эльбрус. История серии суперкомпьютеров

  • Обработка изображений ,
  • Программирование
  • В этой статье мы покажем, как работают технологии распознавания образов на Эльбрус-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-технологии
  • Добавить метки

    Про десктопные процессоры от Intel и AMD слышали и пользуются ими многие. Олдфаги помнят, что порядка 10 лет назад у них был конкурент - процессоры от VIA (которые, увы, конкуренции не выдержали). Ну и уж совсем гики знают про советско-российские процессоры Эльбрус (хотя, впрочем, в свете последних новостей, о них знают достаточно много людей). Поэтому в этой статье мы и поговорим об этих процессорах: как они создавались, на какой архитектуре работали, и что из себя представляют сейчас.


    В СССР отлично понимали, что за процессорами будущее. При этом брать разработки других компаний было нехорошо - нужно, чтобы и элементная база, и теоретические разработки происходили на территории страны (что, впрочем, не помешало с помощью reverse engineering создать множество клонов процессоров от Intel вплоть до 286). В результате, в 1980 году, был представлен вычислительный комплекс Эльбрус-1, который был построен по нормам ТТЛ (транзисторно-транзисторной логика - микросхемы, состоящие из биполярных транзисторов и резисторов, где транзисторы играли роль не только логических элементов, но и использовались для усиления выходного сигнала) и включал в себя 10 ЦП. Итоговая производительность была на уровне 12 млн операций в секунду: для примера, процессор Intel 8086, с которого, собственно, и пошли х86 процессоры, мог выполнять 330 тыс оп/с, и только Intel i486DX, вышедший 10 лет спустя, мог тягаться с этим вычислительным комплексом.



    В 1985 году был представлен новый вычислительный комплекс - Эльбрус-2. Он также имел 10 ЦП, но построены они были на основе интегральных схем ИС-100 (полученными с помощью reverse engineering из процессоров Motorola 10000ой серии). Каждый процессор имел частоту в 20 МГц, и суммарно кластер мог оперировать со 144 МБ ОЗУ. Внешней памятью выступала магнитная лента, а адресуемый объем достигал 700 МБ (столько же, сколько на обычной CD-болванке). Итоговая производительность была уже 125 млн оп/с - это сравнимо с процессорами архитектуры Cortex M3 с частотой в 100 МГц, которые, к примеру, играют роль сопроцессоров для датчиков в iPhone (и называются Apple M7-M10): да, производительность целого вычислительного кластера, который занимал не одну комнату и требовал серьезного охлаждения, теперь помещается в крохотном чипе в смартфоне.


    Новый виток развития Эльбрус пришелся на смутные времена, 1989-1994 годы: заниматься обратной разработкой было уже нельзя: во-первых, Россия - не СССР, и патенты иностранных фирм нарушать было уже нельзя. Во-вторых, одно дело - заниматься reverse engineering процессора с 100 тыс транзисторов, а другое - с десятком миллионов: это гораздо сложнее. В итоге пришлось переходить на VLIW-архитектуру (она специально создана для многопроцессорных систем: одна инструкция процессора содержит несколько операций, выполняемых параллельно, причем известно, какой вычислительный блок выполняет какую операцию). Очевидно, что совместимости с Эльбрус-2 не было, как не было и денег на производство, так что Эльбрусы «похоронили» до начала нулевых.


    Новейшее время, разработки ЗАО МЦСТ

    В начале нулевых, когда основные проблемы в стране были решены, правительство снова обратило внимание на отечественные процессоры. Увы - время было упущено: с 1994 по 2000 год Intel сделали огромный скачок: процессоры нарастили частоты на порядок, техпроцесс также уменьшился на порядок. А Эльбрусы по сути так и остались на уровне начала 90ых, и нужно было что-то решать.

    И тут, на мой взгляд, МЦСТ сделали серьезную ошибку: поняв, что архитектуру нужно менять, они выбрали SPARC. Разумеется, х86-процессоры для них были закрыты, но ведь был же стабильно развивающийся ARM, который также, как и SPARC, свободен для лицензирования. И если последний прекратил свое развитие аж в 1993 году на девятой версии, то ARM развивается дальше. К счастью, в МЦСТ достаточно быстро поняли тупиковость этого пути, и уже в 2005 году представили первый процессор на собственной архитектуре «Эльбрус», и эта архитектура продолжает развиваться. Но все еще 5 лет были потеряны, что для процессоров достаточно серьезный срок.


    Поговорим о «Эльбрусе» подробнее. Эта архитектура основана на все той же VLIW и разработках Эльбрус-3 90ых годов. Основное отличие от привычных нам RISC (это ARM и SPARC) и CISC (x86) заключается в принципах анализа зависимостей и порядка выполнения поступающего потока инструкций: в традиционных архитектурах именно процессор находит независимые операции и запускает их параллельно на разных ядрах, и этот динамический анализ зависимостей и поддержка внеочередного выполнения команд приводит к тому, что современные процессоры могут выполнять 4-6 команд за такт. В архитектуре «Эльбрус» основную работу по анализу зависимостей и оптимизации порядка операций берет на себя компилятор. Процессору на вход поступают т.н. «широкие команды», в каждой из которых закодированы инструкции для всех исполнительных устройств процессора, которые должны быть запущены на данном такте. От процессора не требуется анализировать зависимости между операндами или переставлять операции между широкими командами: все это делает компилятор, исходя из анализа исходного кода и планирования ресурсов процессора. В результате аппаратура процессора может быть проще и экономичнее, а процессоры способны выполнять до 23 (и даже 33 в некоторых случаях) команд за такт!

    В итоге архитектура «Эльбрус» успешно исправляет основную проблему современных вычислительных систем - распараллеливание задачи на большое число потоков: если у Intel или AMD с этим проблемы (самый банальный пример - в играх 4ядерные i7 оказываются на уровне или даже лучше 8ядерных Ryzen), то МЦСТ это проблему преодолели.

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

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

    В итоге оценить производительность мы можем сразу по двум параметрам: во-первых, в GFLOPS - это чисто математическая производительность, которая позволяет приблизительно оценить возможности процессоров на любых архитектурах. Эльбрус 4С, который сейчас является самым производительным из тех, что можно купить, имеет 4 ядра с частотой в 800 МГц, построен на 65 нм техпроцессе, имеет 8 МБ кэша L2 и производительность с двойной точностью на уровне 25 Гфлопс. Для оценки - Intel Core 2 Quad Q6600, 4ядерный мощный процессор, выпущенный в конце нулевых, имеет производительность в 35 Гфлопс. i7-4770, предтоповый процессор 2013-2014 года, имеет производительность уже 250 Гфлопс. Правда, они оба имеют тепловыделение в 65 Вт против 45 у Эльбруса, но разница в производительности гораздо существенней.

    Второй способ оценки производительности - это запуск Windows, что и было сделано: на Эльбрус-4С запустили Windows 7 и игру GTA: Vice City (которой уже больше 10 лет):

    Самый интересный момент происходит на 10:07 - на экране видно, что эмулируется процессор Pentium 4 с частотой в 800 МГц, а объем доступной ОЗУ - 2.5 ГБ:


    Что нам это говорит? То, что каждое ядро по своим возможностям сравнимо с Pentium 4, то есть поддерживает все те же инструкции, что и процессор почти 15-летней давности - никаких AVX, только MMX и старые версии SSE (правда, тут 4 ядра, но и случай не тот, где количество превращается в качество). Поэтому нормально будет работать софт лишь до середины нулевых - все, что новее, уже требует как минимум SSE 4, а вообще говоря уже и AVX. И второе - виртуальная машина требует 1 ГБ ОЗУ (так как всего из 4 ГБ на х86-системе доступно должно быть 3.5, а тут - 2.5), что достаточно мало. В общем и целом все это здорово, но все же хуже разработок конкурентов: так, Windows 10 была запущена и нормально работала на ARM-процессоре, причем запускали там не игрушку 15-летней давности, а достаточно тяжелый Photoshop.

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

    25.05.2017, ЧТ, 11:45, Мск, Текст: Владимир Бахур

    «Ростех» показал первые образцы ПК и серверов на отечественных 8-ядерных 64-битных процессорах «Эльбрус 8С». Установочные партии первых серверов на новых чипов ожидаются к концу 2017 г.

    Первые образцы работающих ПК и серверов

    Объединенный холдинг «Росэлектроника» (входит в «Ростех») в рамках конференции «ЦИПР 2017» в Иннополисе (Татарстан) представил первые образцы персональных компьютеров и серверов на базе микропроцессоров «Эльбрус-8С». Новая отечественная техника, по данным разработчиков, имеет повышенную производительность и гарантирует пользователям высокий уровень защиты информации. Новые серверы предназначены для обработки больших объемов информации, в том числе в режиме реального времени.

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

    «Это новое поколение отечественной вычислительной техники. Все этапы сборки осуществляются на наших производственных площадках и на предприятиях отечественных партнеров. Все это гарантирует высокий уровень информационной безопасности оборудования, -- сказал заместитель гендиректора «Росэлектроники» Арсений Брыкин . -- Мы ожидаем, что первая опытная партия персональных компьютеров на основе нового процессора будет готова уже к концу II квартала 2017 года. Образцы нового оборудования мы представляем сегодня на конференции "ЦИПР" в Иннополисе».

    Чипы «Эльбрус-8С» в 4-процессорной серверной системе

    В составе объединенной «Росэлектроники» разработку и внедрение программно-аппаратных платформ «Эльбрус» ведет Институт электронных управляющих машин (ИНЭУМ) им. И. С. Брука. Разработкой и производством процессором «Эльбрус-8С» занимается компания МЦСТ. Первые образцы процессоров «Эльбрус-8С» для лабораторных экспериментов были получены в конце 2014 г. Массовое производство процессоров будет производиться с соблюдением норм 28-нанометрового технологического процесса.

    Установочная партия 2- и 4-процессорных серверов на основе «Эльбрус-8С», согласно данным «Росэлектроники», будет выпущена к концу 2017 г.

    Технические подробности

    Универсальные микропроцессоры «Эльбрус-8С» являются полностью российской разработкой. Кристалл каждого процессора имеет 8 процессорных ядер с улучшенной 64-разрядной архитектурой «Эльбрус» третьего поколения, кэш-память L2 суммарным объемом 4 МБ (8 х 512 КБ) и кэш-память L3 объемом 16 МБ.

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

    Архитектура процессора «Эльбрус-8С»

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

    Рабочая частота процессоров «Эльбрус-8С» 1,3 ГГц, вычислительная мощность составляет порядка 250 гигафлопс на чип на операциях с одинарной точностью (FP32).

    По сравнению с 4-ядерными процессорами «Эльбрус-4С», пиковая производительность новых чипов процессора «Эльбрус-8С», по данным разработчиков, выше в 3-5 раз, пропускная способность каналов ввода-вывода выше в 8 раз.

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

    Процессоры «Эльбрус-8С» рассчитаны на работу с памятью стандарта DDR3-1600 с поддержкой ECC (до 4контроллеров памяти). Возможна организация многопроцессорных систем с поддержкой до 4 процессоров в системе; для поддержки кэш-когерентности реализована фильтрация снупирования. Для межпроцессорного обмена предусмотрено 3 дуплексных канала с пропускной способностью 16 ГБ/с каждый (8 ГБ/с в каждую сторону).

    Процессоры «Эльбрус-8С» совместимы с контроллером периферийных интерфейсов («южный мост» КПИ-2). Чипы КПИ-2 поддерживают шину PCI-Express 2.0 (PCI-Express 16 + 4 линий), 3 порта Gigabit Ethernet, до 8 устройств SATA 3.0, до 8 портов USB 2.0, до 7 устройств в шиной PCI 32/66, а также интерфейсы IDE, Audio HDA, RS-232, IEEE1284, SPI, I2C и GPIO.

    Для платформы «Эльбрус-8С» предусмотрена система двоичной совместимости с бинарными кодами x86/х86-64. Также обеспечена возможность разработки прикладного ПО, тесты для самодиагностики аппаратуры.

    Базовой операционной системой для платформы «Эльбрус» является ОС «Эльбрус» на базе ядра Linux. Система программирования платформы поддерживает языки С, С++, Java, Фортран-77, Фортран-90.

    Эльбрус Бабаяна и Pentium Пентковского

    Перспективный микропроцессор E2k (Эльбрус-2000), разрабатываемый российской компанией Эльбрус, получил широкую известность лишь недавно, после статьи Кита Дифендорффа "Русские Идут" в февральском выпуске ведущего западного издания в области микропроцессорных архитектур "Microprocessor Report".

    Основные тезисы статьи:

    • новый процессор должен показывать в 3-5 раз более высокую производительность, потреблять меньше электроэнергии и быть дешевле в производстве, чем Intel Merced;
    • команда Эльбрус имеет достаточно хорошую репутацию и опыт, чтобы действительно выпустить такой процессор;
    • компьютеры Эльбрус, реализующие основные современные архитектурные принципы, начали выпускаться задолго до того, как идеи на эту тему начали только обсуждаться на Западе;
    • процессор Эльбрус-3 был изготовлен в 1991 году по очень старой, даже по тем временам, кристальной технологии, но по производительности в два раза превосходил Cray.;
    • технологические новшества E2K столь же впечатляющи, как и архитектурные: E2K реализует лучшую схемотехнику, чем та, которая используется в рекордсмене последнего времени, процессоре Alpha 21264;
    • КМОП технология E2K с низким энергопотреблением позволит в ближайшие 2-3 года иметь "суперкомпьютер в карманном электронном блокноте ";
    • в области компиляторов команда Эльбрус не менее квалифицирована, чем в разработке архитектуры или электронном проектировании: распараллеливающий компилятор E2K в настоящее время достигает показателя 10-ти операций за такт, что почти в три раза выше, чем лучший в отрасли компилятор Alpha;
    • в режиме интерпретации E2K исполняет код микропроцессоров Intel и Sun всего на 10-30% медленнее, чем свой собственный (для сравнения, пакет FX!32, исполняющий код процессоров Intel на компьютерах Alpha, замедляет исполнение в 3 раза); при этом E2K позволяет достичь 100% двоичной совместимости для любых кодов процессоров Intel для любой операционной системы, что выгодно отличает E2K от того же FX!32;
    • важным свойством E2k является "непробиваемая" защита исполняемых кодов и данных от вирусов; развитие подобного направления оборвалось на Западе вместе с провалом микропроцессора Intel 432.

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

    В начале этого года Эльбрус завершил логическое проектирование процессора и все системное программное обеспечение. На точной модели E2k были получены оценки производительности. Теперь предстоит завершающий этап — перенос архитектуры на кристалл.

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

    Эльбрус

    С именем Эльбрус связана история всей мировой вычислительной отрасли. Компания Эльбрус была образована на базе ИТМиВТ имени С.А. Лебедева (Института Точной Механики и Вычислительной Техники, коллектив которого на протяжении более 40 лет разрабатывал суперкомпьютеры для оборонных систем Советского Союза). В процессоре E2k воплощены и развиваются идеи российского суперкомпьютера Эльбрус-3, построенного в 1991г. Сегодня архитектуру Эльбрус-3 принято относить к EPIC (Explicitly Parallel Instruction Computing — вычисления с явным параллелизмом команд).

    По словам Бориса Арташесовича Бабаяна, главного архитектора суперкомпьютеров линии Эльбрус, суперскалярная архитектура была изобретена в России: "В 1978-ом году мы сделали первую суперскалярную машину, Эльбрус-1. Сейчас на Западе делают суперскаляры только такой архитектуры. Первый суперскаляр на Западе появился в 92-ом году, наш в 78-ом. Причем тот вариант суперскаляра, который сделали мы, аналогичен Pentium Pro, который Intel сделал в 95-ом году ".

    Подтверждают историческое первенство Эльбрус и в Америке. В той же статье из Microprocessor Report Кит Дифендорфф, разработчик Motorola 88110, одного из первых западных суперскалярных процессоров, пишет: "В 1978 году, почти на 15 лет раньше, чем появились первые западные суперскалярные процессоры, в Эльбрус-1 использовался процессор, с выдачей двух команд за один такт, изменением порядка исполнения команд, переименованием регистров и исполнением по предположению ".

    В 1991г в Эльбрус (тогда еще ИТМиВТ) побывал г-н Розенбладт (Peter Rosenbladt) из фирмы Hewlett-Packard, и получил исчерпывающую документацию на Эльбрус-3. Позже выяснилось, что именно тогда HP начала проект, приведший к совместной с Intel разработке EPIC-процессора Merced. Его архитектура очень схожа с Эльбрус-3, а отличия в основном связаны с упрощениями сделанными в микропроцессоре от Intel.

    По словам Б.А. Бабаяна, Петер Розенбладт предлагал сотрудничество с HP. Но Бабаян выбрал Sun (первая встреча с руководством Sun состоялась еще в 1989г). И в 1991г с Sun был заключен контракт. От официальных представителей Sun известно, что Эльбрус принимал участие в разработке микропроцессора UltraSPARC, оптимизирующих компиляторов, операционных систем (в том числе Solaris), инструментария Java, библиотек мультимедиа.

    Первоначально проект E2k финансировался фирмой Sun. Сейчас проект полностью независим, вся интеллектуальная собственность на него принадлежит Эльбрус и защищена примерно 70-ю патентами США. Б.А. Бабаян поясняет "Если бы мы и дальше работали с Sun в этой области, то все принадлежало бы Sun. Хотя 90% работы было выполнено еще до появления Sun ".

    В Sun с 1992 по 1995 Эльбрус работал вместе с известным микропроцессорным архитектором Дэйвом Дитцелом. Как рассказывает Б.А. Бабаян, "Потом Дэйв образовал собственную фирму — Transmeta и начал работать над машиной, очень похожей на нашу. Мы по-прежнему поддерживаем с Дитцелом тесные контакты. Да и он очень хочет с нами сотрудничать ". Про будущий продукт Transmeta пока известно мало. Известно, что это VLIW/EPIC микропроцессор с низким энергопотреблением, двоичная совместимость с x86 обеспечивается динамической трансляцией объектного кода.

    А совсем недавно я выяснил, что разработки Эльбрус имеют непосредственное отношение и к самым распространенным сейчас универсальным микропроцессорам — семейству x86 фирмы Intel.

    Пентиум

    Отечественные суперкомпьютерные ноу-хау реализованы в микропроцессорах Pentium. Бывший сотрудник ИТМиВТ Владимир Пентковский в настоящее время является ведущим разработчиком микропроцессоров фирмы Intel. Вместе с Пентковским в Intel попали огромный опыт и совершенные технологии, разработанные в ИТМиВТ. По словам Кита Дифендорффа, компьютеры Эльбрус, в которых реализованы основные принципы современных архитектур, такие как SMP, суперскалярная и EPIC архитектуры, начали выпускаться задолго до того, как идеи на эту тему начали только обсуждаться на Западе.

    Все системное программное обеспечение Эльбрус-1 и Эльбрус-2 было создано с использованием языка программирования высокого уровня Эль-76, а не традиционного ассемблера. Эль-76 напоминает язык Algol-68, принципиальное отличие, пожалуй, состоит в динамическом связывании типов в Эль-76, которое поддержано на аппаратном уровне. Эль-76 является одновременно языком прикладного программирования, управления заданиями, системного программирования. Ассемблер в Эльбрус не использовался — только высокоуровневое программирование. Эль-76 перед исполнением переводился в байткод на манер Java. Этот байткод "на ходу" аппаратно транслировался в простые машинные команды.

    В ИТМиВТ Владимир Пентковский принимал участие в разработке суперкомпьютеров Эльбрус-1 (1978) и Эльбрус-2 (1984). В 1986 году он возглавил проект 32-разрядного микропроцессора Эль-90. К 1987 году логический дизайн будущего микропроцессора был завершен, а в 1990г произведены первые прототипы. В Эль-90 сочетались концепция RISC и архитектура Эльбрус-2.

    Основные характеристики Эль-90:

    • выдача до трех команд за такт
    • 32-разрядная архитектура
    • упрощенный набор команд (по сравнению с Эльбрус-2), большинство команд исполняются за один такт
    • аппаратная поддержка языков программирования высокого уровня
    • исполнение по предположению
    • изменение порядка исполнения команд
    • предсказание ветвлений
    • переименование регистров
    • раздельные кэши команд и данных по 32KB
    • конвейеризованное устройство вещественной арифметики
    • поддержка мультипроцессорности (до 10 процессоров)
    • режим "сверхнадежных вычислений" (несколько процессоров независимо производят вычисления и сравнивают результаты, а если результаты расходятся, считают заново). Этот режим требовался, потому что используемая в Эльбрус элементная база была недостаточно надежной для некоторых военных приложений.

    В 1990г Пентковский начал работу над Эль-91С, последователем Эль-90. Но после изменения в России политической и экономической системы, финансирование разработки прекратилось. На период с 1991 по 1999 год Пентковский теряется из нашего поля зрения. Вновь его имя появляется в Intel Technology Journal. Согласно приложению "биографии разработчиков" к статье, посвященной архитектуре микропроцессора Pentium III (http://developer.intel.com/technology/itj/q21999/articles/art_2who.htm#pentkovski), Владимир Пентковский является главным архитектором Pentium III.

    Хочется также напомнить, что в 1993 году Intel представила свой принципиально новый 32-разрядный процессор Pentium. Вот некоторые из его характеристик:

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

    Не правда ли, между Pentium и Эль-90 очень много общего?

    Может статься, что процессор Pentium назван по фамилии своего разработчика Владимира Пентковского. Действительно, в 1995 году фирма Intel выпустила более совершенный процессор Pentium Pro, который уже вплотную приблизился по своим возможностям к Российскому микропроцессору 1990 года. В Pentium Pro был улучшен декодер команд x86, совершенствовано суперскалярное ядро, добавлено исполнение по предположению, изменение порядка исполнения команд, переименование регистров, улучшен блок операций с вещественными числами.

    Сегодня предыдущий начальник Пентковского, Борис Бабаян, намерен противопоставить Intel новейшу разработку компании Эльбрус, процессор E2k.

    E2k

    Микропроцессор Эльбрус E2k с архитектурой EPIC разрабатывает отечественная компания Эльбрус Интернэшнл (www.elbrus.ru). Руководит проектом член-корреспондент РАН Б.А. Бабаян. Серийное производство начнется в 2001 году, при условии достаточного финансирования. Можно предположить, что в начале 2000г будет реализован прототип E2k. Причем возможно, что он будет произведен на мини-заводе в Москве. Сейчас процессор существует в виде описания на специализированном языке Verilog, такое описание является финальным этапом логического проектирования, на следующем этапе Verilog-описание переносят на кристалл. Уже готов весь набор системного программного обеспечения E2k. Он включает в себя распараллеливающий компилятор и двоичный транслятор кода x86. Примерно два года назад Эльбрус демонстрировал исполнение MS Windows 95 и игры MS FlightSimulator на рабочей станции Sun с процессором UltraSPARC. По всем показателям Эльбрус E2k должен превзойти американские разработки. Е2k будет иметь более высокую производительность при меньшем энергопотреблении и меньших размерах кристалла. При этом программной двоичной трансляцией обеспечивается полная совместимость с кодом x86 почти без потерь производительности по сравнению с собственным кодом E2k. Кстати, языки программирования C и C++ со статическими типами на E2k могут обрести новые интересные свойства — аппаратно поддержанные динамику типов и контекстную защиту.

    Российской разработкой заинтересовалась корпорация Microsoft, для операционных систем которой, вероятно, очень бы пригодилась производительность E2k. Легенда компьютерного мира Гордон Бэлл (Gordon Bell), который, работая в DEC, создавал компьютеры линий PDP и VAX, а сейчас возглавляет исследовательское подразделение Microsoft (Telepresence Research Group), популяризирует проект Эльбрус E2k на международных конференциях.

    Его лекция с названием "Следующее десятилетие супервычислений" (The Next Ten Years in Supercomputing) 26 мая 1999 г открывала Международный Симпозиум по Высокопроизводительным Вычислениям (International Symposium on High Performance Computing) в Японии, а 10 июня — четырнадцатую Манхеймовскую Конференцию по Суперкомпьютерам (Mannheim Supercomputer Conference) в Германии. Оба раза доктор Бэлл часть лекции посвятил рассказу о E2k. В слайде под названием "Russian Elbrus E2K" он приводит таблицу, где оценивает E2k и Merced. Причем сравнение свидетельствует явно не в пользу детища Intel.

    Ниже приведена таблица из доклада Гордона Бэлла.

    Микропроцессор E2K Merced
    Тактовая частота, ГГц 1.2 0.8
    Производительность, SPECint95 / SPECfp95 135 / 350 45 / 70
    Размер кристалла, мм 2 126 300
    Энергопотребление, Ватт 35 60
    Пропускная способность шины, Гбайт/сек 15 н/д
    Кэши (Кбайт) 64 / 256 н/д
    Пиковая производительность, GFLOPS 10.2 н/д
    Планируемое время начала поставок 4-ый квартал 2001г н/д

    Гордон Бэлл (www.research.microsoft.com/users/gbell/bio.htm) является не только высокопоставленным сотрудником Microsoft, но и влиятельным в компьютерном мире консультантом и предпринимателем. Он создал несколько частных фирм, занимающихся разработкой перспективных технологий.

    Заключение

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

    Поэтому мне кажется, что проект уже удался, вне зависимости от реализации в железе. Хотя, наверно, Эльбрус со мной не согласится по части реализации — и реализует.

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

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

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

    Процессор «Эльбрус» производства МЦСТ

    История

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

    Всеволод Бурцев - человек, стоящий у истоков архитектуры «Эльбрус»

    Выпуск первого поколения компьютеров с архитектурой «Эльбрус» состоялся в 1980 году. Их особенностью являлась масштабируемая архитектура: они поддерживали параллельную работу до 10 процессоров одновременно. Объем оперативной памяти составлял 64 Мбайт (или 2 20 машинных слов), а быстродействие такого компьютера достигало отметки в 12 миллионов операций в секунду.

    Компьютер «Эльбрус»

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

    Процессор Pentium стал первой разработкой Intel, использующей суперскалярную архитектуру

    Спустя пять лет после выхода первого поколения процессоров завершилась разработка компьютера «Эльбрус-2». Архитектурно он несильно отличались от «Эльбрус-1», однако в них применялась другая элементная база, что позволило поднять производительность новых процессоров более чем в 10 раз - до 125 млн операций в секунду. Также был увеличен объем оперативной памяти компьютера: с 64 Мбайт до 144 Мбайт, а пропускная способность каналов ввода/вывода составила 120 Мбайт/с.

    «Эльбрус-2», как и его предшественник, был предназначен для использования в оборонной отрасли. В итоге компьютер эксплуатировался в Центре управления космическими полетами, а также в ядерных исследовательских центрах в Арзамасе-16 и Челябинске-70. Помимо этого, существовала и другая версия «Эльбрус-2», оптимизированная под более простые задачи. Она носила название «Эльбрус 1-КБ» и пришла на смену устаревающей системе БЭСМ-6, которая к тому времени использовалась уже на протяжении двух десятков лет. Разработчики сохранили программную совместимость между «Эльбрус 1-КБ» и БЭСМ-6, поэтому переход на новые компьютеры оказался вполне безболезненным.

    Компьютер «Эльбрус-2»

    После успешного выпуска «Эльбрус-2» полным ходом шла разработка нового компьютера, который ожидаемо получил название «Эльбрус-3». В третьем поколение устройств планировалось огромное количество архитектурных изменений. Разработчики из ИТМиВТ именовали новую архитектуру «постсуперскалярной». Данный принцип лежал в основе архитектуры будущих процессоров Intel Itanium. Поэтому, как бы это странно ни звучало, но отечественные инженеры вновь в плане внедрения инноваций опережали своих западных коллег.

    Однако дальше проектирования дело не дошло. В 1994 году был создан тестовый образец процессора «Эльбрус-3», но серийное производство так и не было налажено по достаточно глупой причине: устройство оказалось совсем не востребованным. Спустя 6 лет уже инженеры компании МЦСТ пытались воплотить в жизнь идеи «Эльбрус-3» в новом процессоре «Эльбрус-2000» (также известного как Е2К), который теоретически мог стать конкурентом анонсированному процессору Intel Itanium. Однако массовое производство «Эльбруса-2000» требовали значительных финансовых вливаний, а найти инвестора разработчикам так и не удалось.

    Создание МЦСТ и ее разработки

    Стоит сделать небольшое отступление и сказать пару слов о МЦСТ, которая со времен «Эльбрус-3» и занимается разработкой подобных решений. Компания была основана 2 марта 1992 года как Товарищество с ограниченной ответственностью (ТОО) «Московский центр SPARC-технологий» (МЦSТ). Наличие аббревиатуры SPARC в названии связано с тем, что на тот момент компания МЦСТ рассматривала в качестве основного партнера американскую корпорацию Sun Microsystems, которая продвигала свои вычислительные машины с архитектурой SPARC. И наличие этой аббревиатуры в названии предоставляло ей существенные льготы при сотрудничестве. Например, МЦСТ получила доступ к передовым технологиям проектирования микропроцессорной техники, операционным системам, системам программирования и другим технологиям. На период развития компании это было очень существенной поддержкой. И если поначалу компания работала в тесном сотрудничестве с такими гигантами, как Sun Microsystems, Avanti, Compass, Synopsys, то вскоре инженеры МЦСТ, набравшись опыта, полностью переключились на разработку устройств по государственным заказам.

    Система со SPARC-процессором МЦСТ R500

    Вплоть до 2007 года МЦСТ выпускала лишь микропроцессоры с архитектурой SPARC и вычислительные системы на их базе. Собственная архитектура «Эльбрус» отошла на второй план. В период с 1997 по 2007 годы были выпущены четыре SPARC-микропроцессора: МЦСТ-R100, МЦСТ-R150, МЦСТ-R500 и МЦСТ-R500S. Также увидел свет и вычислительный комплекс «Эльбрус-90микро». Несмотря на свое название, к данной архитектуре система не имела никакого отношения.

    Лишь в 2005 году возобновилась работа над архитектурой «Эльбрус», основанной на микроархитектуре VLIW (Very Long Instruction Word). А уже в 2007 году был представлен одноименный процессор. Его основные характеристики мы собрали в таблицу, которую вы можете увидеть снизу.

    Технологический процесс 0,13 мкм
    Рабочая тактовая частота 300 МГц
    Пиковая производительность 64 разряда, GIPS/GFLOPS - 6,67/2,4 32 разряда, GIPS/GFLOPS - 9,5/4,8 16-8 GIPS - 12,2–22,6
    64 Кбайт
    64 Кбайт
    Кэш-память 2-го уровня 256 Кбайт
    9,6 Гбайт/с
    4,8 Гбайт/с
    Размеры кристалла 15,0х12,6
    Количество транзисторов 75,8 млн
    Рассеиваемая мощность 6 Вт

    Конечно, для 2007 года характеристики чипа были более чем скромные - он ни в коем случае не составлял конкуренции современным процессорам, например, поколению Intel Conroe, представленному в 2006 году. «Эльбрус» уступал им по всем параметрам. Процессор выпускался по устаревшим 130-нм технологическим нормам, тогда как Intel и AMD уже освоили 65-нм техпроцесс. Как ни странно, но производство процессора было доверено тайваньской компании TSMC. Странно потому, что «камень» предназначался для использования в «оборонке», а производство на сторонних мощностях, таким образом, напрямую влияло на безопасность системы из-за возможных «закладок».

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

    Что касается скорости работы «Эльбруса», то его пиковая производительность в 64-разрядном режиме составляла 2,4 ГФЛОПС. Для сравнения: пиковая производительность бюджетного двухъядерного процессора Intel Core 2 Duo E4300 с актуальной на то время архитектурой Conroe и тактовой частотой 1,8 ГГц составляла 14,4 ГФЛОПС, то есть в 6 раз больше! Поэтому вы можете представить, насколько медленным был «Эльбрус» для 2007 года. Тем не менее, для оборонной отрасли производительности процессора было вполне достаточно, поэтому на его основе была создана вычислительная система «Эльбрус-3М1».

    Вычислительный комплекс «Эльбрус-3М1»

    Комплекс «Эльбрус-3М1» поставлялся с защищенной операционной системой МСВС-Э (Мобильная система Вооруженных Сил), в основе которой лежит Linux версии 2.6.14. Кроме этого компьютер оснащался пакетом тестовых и диагностических программ, а также был обратно совместим со старыми вычислительными комплексами «Эльбрус-1» и «Эльбрус-2». По уровню производительности «Эльбрус-3М1» был сопоставим с системой на базе Pentium III с тактовой частотой 500 МГц. Было проведено сравнительное тестирование в режиме совместимости с платформой x86, и «Эльбрус-3М1» превзошел в скорости процессор Intel. Помимо этого, проводилось тестирование и в «родной» платформе для системы МЦСТ. В таком режиме производительность «Эльбрус-3М1» находилась на уровне с конфигурацией на базе процессора Intel Pentium 4 с частотой 2000 МГц. Для оборонной отрасли такого уровня производительности было более чем достаточно.

    Следующим этапом развития архитектуры стала система на кристалле «Эльбрус-S», выпущенная в 2010 году. Для удобства сравнения мы свели все основные характеристики процессора в следующую таблицу.

    Технологический процесс 0,09 мкм
    Рабочая тактовая частота 500 МГц
    Пиковая производительность 64 разряда, GFLOPS - 4 32 разряда, GFLOPS - 8
    Кэш-память команд 1-го уровня 64 Кбайт
    Кэш-память данных 1-го уровня 64 Кбайт
    Кэш-память 2-го уровня 2 Мбайт
    Пропускная способность шин связи с кэш памятью 16 Гбайт/с
    Пропускная способность шин связи с оперативной памятью 8 Гбайт/с
    Площадь кристалла 142 мм2
    Количество транзисторов 218 млн
    Рассеиваемая мощность 13 Вт - типовая, 20 Вт - максимальная

    Характеристики нового процессора были улучшены в сравнении с «Эльбрусом». Прежде всего стоит отметить, что производство «Эльбрус-S» было переведено на 90-нм технологические «рельсы». Пускай в 2010 году Intel и AMD уже производили процессоры по тонкому 32-нм техпроцессу, но для отечественного устройства этот переход стал значительным шагом вперед. Тактовая частота «Эльбрус-S» составляла 500 МГц, что на 200 МГц выше, чем у «Эльбруса». Выросла и пиковая производительность: до 4 и 8 ГФЛОПС в 64-разрядном и 32-разрядном режимах соответственно. Увеличился и объем кэш-памяти второго уровня - до 2 Мбайт. Да и сам чип стал сложнее: количество транзисторов в сравнении с предшественником выросло почти в три раза.

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

    В придачу к «Эльбрус-S» МЦСТ представила контроллер периферийных устройств (КПИ) - он же «южный мост». Хаб обеспечил поддержку как «гражданских» интерфейсов, так и промышленных. Благодаря КПИ стало возможным созданием специального четырехпроцессорного рабочего модуля МВ3S/C, который используется в военной технике.

    Технологический процесс, нм 130
    Тактовая частота, МГц 250
    Последовательная шина связи с процессором, пропускная способность, Гбайт/с 2
    Контроллер 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 сигналов
    Интерфейс I2C 4 канала
    Число транзисторов, млн 30
    Потребляемая мощность, Вт 6

    Спустя год было налажено производство следующего поколения процессоров под названием «Эльбрус-2С+». В своих пресс-релизах компания МЦСТ указывала шестиядерную архитектуру. Однако это совсем не так! «Эльбрус-2С+», по сути, является двухъядерной моделью. Он обладает двумя модулями архитектуры «Эльбрус», но также имеет и четыре ядра цифровых сигнальных процессоров (DSP) фирмы «Элвис». Помимо этого, кристалл претерпел множество изменений. Так, объем кэш-памяти второго уровня каждого из ядер составляет 1 Мбайт. Была добавлена поддержка памяти DDR2 с эффективной частотой 800 МГц, а также дополнительный канал ввода/вывода, посредством которого можно подключить еще один КПИ.

    Двухъядерный процессор «Эльбрус-2С+»

    Для процессора была реализована версия компилятора языка C, которая позволяет генерировать код для ядер DSP и обеспечивать эффективное взаимодействие основной программы, исполняющейся на ядрах CPU, а также процедур, исполняющихся на DSP. Забегая чуть вперед, скажем, что программировать под ядра DSP было сравнительно трудно, поэтому в следующем поколении процессоров инженеры МЦСТ от них отказались вовсе. В результате внесенных изменений производительность процессоров значительно возросла и уже составляла 28 ГФЛОПС в 32-разрядном режиме. Если сравнивать быстродействие «Эльбрус-2С+» с процессорами Intel, то отечественная разработка окажется чуть выше по скорости, чем решения Intel Core 2 Duo.

    Технологический процесс 0,09 мкм
    Рабочая тактовая частота 500 МГц
    Число ядер архитектуры Эльбрус Число ядер DSP (Elcore-09) 2 4
    Пиковая производительность (ядра CPU + ядра DSP) 64 разряда, GFLOPS –­ 8+0 32 разряда, GFLOPS – 16+12
    Кэш-память команд 1-го уровня 64 Кбайт
    Кэш-память данных 1-го уровня 64 Кбайт
    Кэш-память 2-го уровня 1 Мбайт
    Встроенная память DSP (на ядро DSP) 128 Кбайт
    Пропускная способность шин связи с кэш памятью 16 Гбайт/с
    Пропускная способность шин связи с оперативной памятью 12,8 Гбайт/с
    Площадь кристалла 289 мм2
    Количество транзисторов 368 млн
    Рассеиваемая мощность 25 Вт

    Производительность процессора можно примерно оценить по следующим диаграммам.

    Результаты тестирования в пакете SPEC2000 FP

    Результаты тестирования в пакете SPEC2000 Int

    Помимо «Эльбрус-2С+», в тестировании участвовали процессоры Intel Pentium-M ULV (1 ГГц, кэш-память 1 Мбайт, 2х DDR-266) и Intel Atom D510 (1,66 ГГц, кэш-память 1 Мбайт, DDR2-800), а также еще один процессор компании МЦСТ - R1000. В качестве тестового программного обеспечения был выбран пакет SPEC2000. Как видно из диаграмм, в режиме FP производительность «Эльбрус-2С+» находится на заметно более высоком уровне, нежели у конкурентов. В режиме Int ситуация выравнивается, и зачастую производительность всех процессоров находится на одном уровне, хотя местами отечественные решения откровенно «проседают».

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

    И вот в апреле 2014 года компания МЦСТ представила свою следующую разработку - четырехъядерные процессоры «Эльбрус-4С».

    Архитектура процессоров «Эльбрус-4С»

    Прежде чем мы начнем подробное изучение архитектуры новых процессоров «Эльбрус-4С», необходимо уделить немного внимания современной архитектуре в целом. Как вам известно, все интегральные решения можно разделить на две большие группы: CISC (Complex Instruction Set Computer) и RISC (Reduced Instruction Set Computer). Уже из названий становится понятно, что CISC-процессоры работают со сложными инструкциями, а RISC - с упрощенными. Сложность инструкций для первой категории заключается в том, что их длина не ограничена. Вдобавок к этому они могут содержать сразу несколько арифметических действий. До начала 1980-х абсолютно все процессоры имели CISC-архитектуру, однако тогдашние исследования компании IBM показали, что сложные инструкции далеко не всегда обрабатываются быстрее, чем последовательность элементарных операций, соответствующая такой сложной инструкции. Так появилась архитектура RISC, предусматривающая использование упрощенных команд.

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

    При этом процессоры x86 являются суперскалярными. Это означает, что за один такт процессор может обрабатывать сразу несколько инструкций. В далеком прошлом процессоры не обладали суперскалярностью и исполняли за такт лишь одну операцию. Тогда это не создавало проблем. Но со временем от CPU требовалась всё более высокая производительность, да и технологические возможности позволяли создавать более сложные системы. Поэтому суперскалярность стала неотъемлемой частью процессорных архитектур. Главной проблемой суперскалярности считается то, что нельзя так просто исполнять несколько операций параллельно, поскольку между ними могут существовать зависимости. Для наглядности тут можно провести параллель с программированием: нельзя запустить на исполнение сразу две функции, если одна из них использует результирующее значение другой. Поэтому в суперскалярных процессорах есть специальная аппаратура, которая анализирует зависимости между операциями и принимает решение об очередности их исполнения.

    Принцип работы архитектуры «Эльбрус»

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

    Принцип работы процессора «Эльбрус»

    Среди других особенностей архитектуры «Эльбрус» инженеры МЦСТ выделяют следующие:

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

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

    Разработчики МЦСТ в целях повышения безопасности пошли иным путем. Процессоры «Эльбрус-4С» поддерживают так называемое защищенное исполнение программ. Его суть заключается в том, чтобы гарантировать работу приложения только с инициализированными данными, проверять все обращения в память на принадлежность к допустимому диапазону адресов, обеспечивать межмодульную защиту (например, защищать вызывающее ПО от ошибки в библиотеке). Эти проверки осуществляются аппаратно.

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

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

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

    Технологический процесс 65 нм
    Рабочая тактовая частота 800 МГц
    Число ядер архитектуры Эльбрус 4
    Пиковая производительность 64 разряда, GFLOPS –­ 25 32 разряда, GFLOPS – 50
    Кэш-память команд 1-го уровня 128 Кбайт
    Кэш-память данных 1-го уровня 64 Кбайт
    Кэш-память 2-го уровня 8 Мбайт
    Организация оперативной памяти До 3 каналов DDR3-1600 ECC
    Пропускная способность каналов оперативной памяти 38,4 Гбайт/с
    Каналы межпроцессорного обмена 3, дуплексные
    Пропускная способность каждого канала межпроцессорного обмена 12 Гбайт/с
    Площадь кристалла 380 мм2
    Количество транзисторов 986 млн
    Рассеиваемая мощность До 60 Вт

    Прежде всего нужно отметить, что производство процессора было переведено на 65-нм техпроцесс. Тактовая частота CPU возросла до 800 МГц. Удвоился объем кэш-памяти команд первого уровня, теперь он составляет 128 Кбайт. А объем кэш-памяти второго уровня составляет 8 Мбайт (против 1 Мбайт у «Эльбрус-2С+»). Также значительно выросла пропускная способность каналов оперативной памяти. Эти изменения позволили добиться внушительной прибавки производительности новых процессоров. Так, в 64-разрядном режиме пиковая производительность составляет 25 ГФЛОПС, что более чем в три раза выше, чем показатель «Эльбрус-2С+». В 32-разрядном режиме производительность достигла отметки 50 ГФЛОПС. Вместе с тем возросла и сложность кристалла. «Эльбрус-4С» содержит 986 млн транзисторов, а его полезная площадь составляет 380 мм 2 .

    Ближайшее будущее процессоров «Эльбрус»

    Компания МЦСТ ни в коем случае не планирует снижать темпы разработки и выпуска новых решений. На 2015 год уже запланирован анонс восьмиядерного 28-нм процессора «Эльбрус-8С». Кристалл оснастят 4 Мбайт кэш-памяти второго уровня и 16 Мбайт кэш-памяти третьего уровня, а его тактовая частота составит 1300 МГц. При этом пиковая производительность достигнет отметки 250 ГФЛОПС. Планируется, что «Эльбрус-8С» будет работать в связке с контроллером периферийных устройств второго поколения (КПИ-2), который будет отличаться увеличенной до 16 Гбайт/с пропускной способностью.

    Однако 8-ядерный чип является не единственным находящимся в разработке процессором МЦСТ. Компания также «допиливает» экономичный «одноголовый» чип «Эльбрус-1С+», предназначенный для использования в ноутбуках, терминалах и промышленной автоматике. Его отличительной особенностью является наличие встроенного видеоядра с поддержкой аппаратного ускорения 3D-видео. Процессор будет выпускаться в соответствии с 40-нм технологическими нормами. Производительность ядра составит около 24 ГФЛОПС, а встроенного видео - около 28 ГФЛОПС. «Эльбрус-1С+» также будет совместим с новым «южным мостом» КПИ-2, а его энергопотребление составит не более 10 Вт. Выпуск этого процессора также запланирован на 2015 год.

    Заключение

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

    У компании МЦСТ большие планы на будущее. Это и выпуск процессоров «Эльбрус-8С», и «Эльбрус-1С+». Так что следующий год во многом покажет, насколько конкурентоспособной окажется российская отрасль микроэлектроники.

    • Сергей Савенков

      какой то “куцый” обзор… как будто спешили куда то