Выпуск #8/2008
В.Волконский, А.Ким, Л.Назаров, В.Перекатов, В.Фельдман.
Микропроцессоры и вычислительные комплексы российской компании МЦСТ
Микропроцессоры и вычислительные комплексы российской компании МЦСТ
Просмотры: 3349
Десять лет назад в интервью нашему журналу Б.А.Бабаян рассказывал об архитектуре процессора "Эльбрус-2000" и деятельности компании "Московский центр SPARC-технологий" (МЦСТ)*. С тех пор многое изменилось, компания выпустила ряд SPARC-совместимых микропроцессоров** и вычислительных комплексов на их основе. Наконец, год назад успешно прошел испытания процессор с архитектурой "Эльбрус", подтвердивший возлагавшиеся на него надежды. Станет ли он первым в серии или так и останется единственным чрезвычайно дорогим продуктом для специальных применений – покажет лишь время. По крайней мере, планы компании по развитию линеек микропроцессоров как с архитектурой SPARC, так и "Эльбрус" весьма амбициозны.
Начиная с первых проектов, вычислительные средства серии "Эльбрус" рассматривались в качестве основы систем стратегического значения, требующих максимально высокой скорости обработки информации. Выдающимся достижением советского периода был многопроцессорный вычислительный комплекс (МВК) "Эльбрус-2", созданный в Институте точной механики и вычислительной техники (ИТМ и ВТ) им. С.А.Лебедева. Благодаря уникальной для того времени производительности (более 120 млн. операций в секунду), он в течение многих лет использовался в центральных объектах системы ракетно-космической обороны (РКО) страны. Быстродействие и другие высокие характеристики комплекса были достигнуты благодаря ряду передовых идей в организации вычислительного процесса. Ведущие зарубежные и отечественные специалисты не раз относили эти идеи к числу значительных результатов мирового компьютеростроения 1970–1980-х годов.
Опыт ИТМ и ВТ был в полной мере использован компанией ЗАО "МЦСТ", образованной в начале 90-х годов прошлого века рядом ведущих специалистов проекта "Эльбрус". В связи с острой потребностью в обновлении информационно-вычислительных средств, компания приступила к созданию микропроцессоров серии "МЦСТ-R" и вычислительных комплексов серии ВК "Эльбрус-90 микро" на их основе. По требованию заказчика, все основные компоненты вычислительных машин и их системное программное обеспечение должны были быть отечественной разработки. Речь шла не только о микропроцессоре, но и о системных и периферийных контроллерах. Все эти требования при проектировании ВК "Эльбрус-90 микро" были выполнены. Поскольку пока в России нет полупроводниковых производств с современными технологическими нормам, микропроцессоры по документации компании МЦСТ изготавливаются тайваньской фирмой TSMC. Сами же вычислительные комплексы производятся российскими предприятиями.
С 2006 года в проектах компании МЦСТ участвуют специалисты ОАО "ИНЭУМ", имеющие большой опыт в создании вычислительных средств и их программного обеспечения. Перспективные планы объединенного коллектива направлены на создание компьютеров для ответственных применений. Принципиальной задачей является разработка суперкомпьютера за счет комплексирования многопроцессорных и многомашинных конфигураций на базе отечественных микропроцессоров с передовыми конструктивно-технологическими показателями.
SPARC-совместимые микропроцессоры
В качестве основы серии микропроцессоров "МЦСТ-R" была выбрана архитектура SPARC (Scalable Processor Architecture) компании Sun Microsystems – хорошо освоенная, открытая RISC-архитектура универсальных высокопроизводительных микропроцессоров. Сохранив совместимость с аналогами с точки зрения системы команд и программной модели, в структуру микропроцессоров "МЦСТ-R" было введено множество усовершенствований, направленных на увеличение производительности. Освоив на первом этапе технологические нормы 350 нм при создании микропроцессора "МЦСТ-R150" с тактовой частотой 150 МГц, компания разработала одноядерный микропроцессор "МЦСТ-R500" с тактовой частотой 500 МГц по технологии 130 нм (см. таблицу). Выбор тактовых частот определялся, главным образом, возможностями компании в области полузаказного проектирования, ограниченными ее ресурсами. Одновременно был реализован набор системных контроллеров для подключения оперативной памяти, периферийных шин, межсистемных каналов и каналов ввода-вывода. Также был создан комплект периферийных контроллеров ряда стандартных и специальных интерфейсов.
Основными компонентами системного программного обеспечения стали оптимизирующий компилятор с языков С/С++ и операционная система. Компанией разработаны три ее версии на базе операционных систем Solaris и Linux. Они дополнены средствами защиты от несанкционированного доступа и поддержки работы в многопроцессорных и многомашинных комплексах, большим набором специальных драйверов.
Все это позволило приступить к выпуску вычислительных комплексов "Эльбрус-90 микро", преимущественно предназначенных для перебазируемых и встраиваемых систем. Сейчас эти комплексы производятся в различных модификациях и используются в объектах ряда систем стратегического назначения. К концу 2008 года заказчикам в общей сложности поставлено более 2000 вычислительных комплексов "Эльбрус-90 микро".
Дальнейшее развитие линии микропроцессоров со SPARC-совместимой архитектурой направлено на повышение производительности за счет конструктивно-технологических ресурсов. С 2008 года начато серийное производство микропроцессора "МЦСТ-R500S" (технология 130 нм) с тактовой частотой 500 МГц, который включает два процессорных ядра, общую кэш-память второго уровня, коммутатор и набор контроллеров, образующих почти полную схему современного компьютера (без оперативной памяти и внешних устройств). Созданная компанией система на кристалле позволила существенно повысить скорость вычислений относительно "МЦСТ-R500", который до этого обладал высшей производительностью среди отечественных микропроцессоров.
Микропроцессоры "МЦСТ-R500" и "МЦСТ-R500S" реализуют 32-разрядную версию архитектуры SPARC (v8). В 2011 году планируется начать серийное производство 4-ядерного микропроцессора "МЦСТ-4R", соответствующего 64-разрядной версии SPARC (v9), с тактовой частотой 1 ГГц. Процессор выполнен по технологическим нормам 90 нм. В этом проекте особое внимание уделяется созданию системы на кристалле, позволяющей строить высокопроизводительные многопроцессорные конфигурации. Такая возможность характерна для всех проектов ЗАО "МЦСТ". Для этого практически одновременно выпускается новое поколение СБИС микропроцессоров и одноплатных процессорных модулей на их основе.
Линия SPARC-совместимых процессоров сыграла важнейшую роль в расширении проектных возможностей компании МЦСТ. Реализация достаточно простых, хорошо документированных и широко используемых архитектурных принципов оказалась весьма полезной для специалистов МЦСТ при освоении ими новых микропроцессорных технологий.
Вычислительные комплексы на базе микропроцессоров с архитектурой SPARC
Проектирование вычислительных комплексов на базе собственных микропроцессоров потребовало от компании развернуть работу по ряду направлений, основное из которых – создание процессорных модулей, выпуск функционально полной номенклатуры периферийных контроллеров, разработка конструктива в соответствии с определенным форм-фактором и назначением. В течение последних лет эти задачи решаются применительно к серии ВК "Эльбрус-90 микро", в которой используется микропроцессор "МЦСТ-R500".
Процессорный модуль на базе микропроцессоров "МЦСТ-R500" по существу является одноплатной универсальной ЭВМ – он способен функционировать во встроенных применениях, но может непосредственно или с некоторыми модификациями использоваться в качестве материнской платы вычислительного комплекса. В рамках данной серии ВК был разработан процессорный модуль МV/C с максимальной производительностью 1750 MIPS и 685 MFlops. Он содержит до четырех микропроцессоров, подключенных через системную шину MBus к общей оперативной памяти объемом до 1 Гбайт, периферийные шины SBus и PCI, а также набор встроенных системных и периферийных контроллеров.
В номенклатуру периферийных контроллеров компании МЦСТ входят Ethernet 10/100, SCSI, USB, IDE, RS-232, RS-422, RS-485, PS/2, EBus, IEEE 1284, Manchester 2, аудио- и видеоконтроллеры, контроллеры прерываний и таймеров, а также ряд специальных контроллеров, разработанных для вычислительных комплексов на объектах заказчиков.
Процессорные и периферийные модули выпускаются в различных форм-факторах, соответствующих конструктиву вычислительного комплекса. Уже реализовано исполнение в вариантах Pizza Box, Compact PCI, ATX, EATX, ETX, PMC.
Эти разработки позволили компании МЦСТ приступить к выпуску вычислительного комплекса "Эльбрус-90 микро" в различных исполнениях, включая перебазируемую модель, шкафное исполнение для стационарных применений, в конструктивах "Евромеханика", персонального компьютера и ноутбука (рис.1), а также для АРМ оператора.
Базовым модулем следующего поколения ВК линии SPARC должна стать одноплатная многомашинная система, включающая четыре микросхемы "МЦСТ-R500S" (рис.2а). В их структуре системная общая шина заменена коммутатором, который обеспечивает высокоскоростной доступ каждого из двух процессорных ядер в собственную память или к "закольцованным" через контроллеры прямого доступа к удаленной памяти (RDMA) блокам локальной памяти остальных процессоров. Общий объем распределенной оперативной памяти – 8 Гбайт. Помимо набора встроенных контроллеров для автономной работы модуль MVC/C позволяет использовать дополнительные контроллеры. Для их установки предусмотрены два посадочных места на шине PCI.
Одноплатный процессорный модуль на базе СБИС "МЦСТ-4R" (рис.2б) позволяет увеличить объем распределенной оперативной памяти до 32 Гбайт, при этом контроллеры когерентности обеспечивают согласованность данных в кэш-памяти и оперативной памяти в многопроцессорных системах. Каналы межпроцессорного обмена позволяют соединить процессоры по принципу "каждый с каждым", что существенно сокращает время доступа к памяти и к подсистеме ввода-вывода других машин.
В ближайших планах компании МЦСТ – разработка мультиконтроллера южного моста, подключаемого к каналу доступа подсистемы ввода-вывода процессора. В состав мультиконтроллера входит набор периферийных контроллеров (интерфейсы PCI, PCI Express, IDE, Ethernet 10/100/1000, I2C/SPI, IEEE-1284, RS-232, AC-97, GPIO, контроллеры прерываний и таймеров). Возможности микропроцессоров "МЦСТ-R500S", "МЦСТ-4R" и разработанных для них периферийных контроллеров позволяют и далее наращивать общую производительность вычислительных систем за счет создания многоплатных конфигураций.
Архитектура "Эльбрус"
Важнейший результат деятельности компании МЦСТ – разработка микропроцессорной архитектуры "Эльбрус", ориентированной на достижение наивысшей производительности. Это принципиальный базис крупномасштабных информационно-вычислительных систем для сложной обработки большого объема данных. Главные особенности архитектуры – высокая степень параллелизма во всех определяющих элементах вычислительного процесса, полная и эффективная двоичная совместимость с платформой Intel x86 на базе скрытой динамической трансляции, аппаратная поддержка защищенного исполнения программ.
Ключевой фактор, определивший высокую производительность архитектуры "Эльбрус", – максимальный при наличных аппаратных ресурсах параллелизм вычислительного процесса на уровне операций. Он достигается за счет архитектуры команд с так называемым широким командным словом (VLIW). В одной VLIW-команде кодируется несколько операций, которые исполняются параллельно, каждая в своем конвейере. Поскольку время выполнения операции детерминировано, можно уже на стадии компиляции, контролируя информационные зависимости и занятость ресурсов, планировать каждый такт работы процессора. Эффективность такого подхода существенно зависит от размера широкой команды, номенклатуры операций и их сочетаний, разрешенных для выполнения в одном такте процессора. В микропроцессоре "Эльбрус" максимальная длина команды составляет 64 байта, что позволяет включить в нее до 23 простых RISC-операций (полная номенклатуры включает операции нескольких классов – как достаточно традиционных, так и обусловленных архитектурными новациями процессора). Микропроцессор содержит шесть каналов для выполнения арифметических и логических операций, каждый из них – с собственным набором исполнительных устройств, рассчитанных на целочисленные и вещественные операнды.
Традиционно скалярные и векторные вычисления ассоциируются с различными архитектурными концепциями. Отличие в том, что при скалярных вычислениях скорость счета главным образом ограничивается информационными зависимостями между различными операциями. При векторных же вычислениях более важна возможность максимально загрузить исполнительные устройства операциями, заданными в программе.
Существенно, что параллельное исполнение операций за счет широкого командного слова эффективно как в скалярных, так и в векторных вычислениях. Более того, ряд решений в архитектуре "Эльбрус" способствует ускорению каждого из этих процессов. Для скалярных вычислений реализованы спекулятивный и предикатный режимы исполнения операций, предварительная подкачка кода обеих ветвей. Введение файла предикатов позволяет параллельно вычислять несколько условий. Это важно не только для скалярных вычислений с условным выполнением операций, но и для работы в циклах, содержащих условные ветви. Для векторных вычислений аппаратно поддержано выполнение циклов методом программного конвейера. Благодаря широкому командному слову на каждом шаге программного конвейера могут выполняться операции из разных итераций, причем их может быть много. Это существенно ускоряет векторные вычисления.
В ряде случаев эффективность векторных вычислений определяется временем обращения к массивам в оперативной памяти. Оно зависит от типа массивов и их расположения в структуре памяти. При определенных условиях задержки обращения к массивам могут существенно замедлить вычисления. На производительность вычислений отрицательно влияет и необходимость заранее резервировать ячейки регистрового файла под элементы вызываемого массива. Поэтому в архитектуру "Эльбрус" введен буфер предварительной подкачки, в который заблаговременно, на фоне текущих вычислений, загружаются элементы массива для последующих итераций цикла. Данные хранятся в буфере подкачки и передаются в регистровый файл непосредственно перед использованием.
Рассмотренные достоинства архитектуры "Эльбрус", перечень которых далеко не исчерпан, в совокупности можно определить как "производительность за счет параллелизма". Но это – не единственная особенность архитектуры. Еще в начале проекта все понимали, что успех возможен только в том случае, если новая архитектура покажет свои достоинства в сравнении с эталонными платформами, для которых разработана основная масса программного обеспечения. Эта идея весомо подкреплялась требованием заказчика обеспечить переносимость специального программного обеспечения, созданного за последние годы на зарубежной технике. В результате была реализована вторая принципиальная особенность архитектуры "Эльбрус" – полная и эффективная (за счет параллелизма) двоичная совместимость с платформой Intel x86 на базе скрытой динамической двоичной компиляции и ее поддержки в аппаратуре. Речь идет о совместимом представлении данных, реализации полного набора операций Intel x86, введении отдельного пространства виртуальной памяти для программ для Intel x86, совместимом формате таблицы страниц и о ряде других системных решений.
Уже на первых этапах формирования архитектуры требовалось обеспечить условия для разработки надежного программного обеспечения при выполнении масштабных проектов с участием больших коллективов программистов и в сжатые сроки. Решение заключалось в реализации защищенного исполнения программ – это третья принципиальная особенность архитектуры "Эльбрус". Она основана на контекстной защите памяти, при которой на аппаратном уровне (типизация данных с помощью тегов) фиксируются любые нарушения защиты памяти, воспринимаемые в обычных системах как "неопределенное поведение". Соответственно, выявляются опасные и сложные ошибки, отнимающие заметное время даже у опытных программистов. Достаточно отметить, что при проведении государственных испытаний на ВК "Эльбрус-3М1" выполнялись проверки, в результате которых были зафиксированы ошибки (нарушение границ объекта, использование неинициализированных данных, использование опасных конструкций языка или опасных отклонений от стандарта языка) в 4 из 7 задачах пользователей, в 7 из 8 задачах пакета SPECint95, в 874 из 888 тестах пакета SAMATE, содержащих собранные по миру ошибочные фрагменты программ.
Реализация архитектуры "Эльбрус"
Описанная архитектура реализована в микропроцессоре "Эльбрус" (технология 130 нм, тактовая частота 300 МГц, площадь кристалла – 189 мм2, 75,8 млн. транзисторов) и в двухпроцессорном вычислительном комплексе "Эльбрус-3М1" на его основе (рис.3), государственные испытания которых успешно завершились в конце 2007 года, а в 2008 году началось серийное производство и поставки. Успешно прошли испытания и общее программное обеспечение ВК "Эльбрус-3М1". Оно включает защищенную операционную систему МСВС-Э, систему программирования (содержит оптимизирующий компилятор, библиотеку поддержки языков высокого уровня и другие составляющие систем языкового программирования, а также системы двоичной трансляции для исполнения двоичных кодов платформы Intel x86), комплекс пользовательских сервисных программ и др. – всего более 100 млн. строк С/С++, вновь разработанных и доработанных под платформу "Эльбрус".
На испытаниях была зафиксирована пиковая производительность микропроцессора для 32-разрядных данных 6,9 GIPS / 4,8 GFlops. Эффективность оптимизирующего компилятора (точнее, эффективность оптимизирующей компиляции применительно к архитектуре "Эльбрус") подтвердило сравнение пиковой производительностью микропроцессора c его производительностью на реальных задачах. В частности, для задач умножения матриц (DGEMM) с 32- и 64-разрядными данными реальная производительность составила 4,5 и 2,3 GFlops, соответственно, при пиковой 4,8 и 2,4 GFlops. В целом удельная производительность микропроцессора составила 16 GFlops/Гц.
Реализуя архитектуру "Эльбрус", компания МЦСТ вышла на новый, гораздо более высокий уровень проектирования микросхем по сравнению с серийно выпускаемым микропроцессором "МЦСТ-R500" (на этом же уровне разработан и выпущен процессор "МЦСТ –R500S"). Однако технология уровня 130 нм и полузаказное проектирование не позволили в микропроцессоре "Эльбрус" поднять тактовую частоту выше 300 МГц. Тем не менее, следовало экспериментально показать достоинства архитектуры "Эльбрус" относительно процессоров семейства Intel х86, работающих на несравненно более высокой частоте. Для этого было выполнено прямое исполнение в кодах Intel x86 более 20 операционных систем (MSDOS, Windows XP, Linux, QNX и др.) и более 1000 популярных приложений. Продемонстрированная при этом полная совместимость позволила провести "гонки" на производительность с микропроцессором Pentium 4 (1,4 ГГц) (рис.4). В результате на 21 задаче пользователей производительность ВК "Эльбрус-3М1" в однопроцессорном режиме была равна в среднем производительности компьютера на основе Pentium 4 с тактовой частотой 2 ГГц.
Испытания ВК "Эльбрус-3М1" в однопроцессорном режиме показали увеличение быстродействия в среднем в 5,2 раза относительно ВК "Эльбрус-90 микро" (500 МГц) и в 1,44 раза относительно компьютера на основе Pentium 4 (1,4 ГГц). При столь высокой производительности энергопотребление процессора мало – отношение производительности к мощности превышает 0,4 GFlops/Вт, что является превосходным показателем для универсальных одноядерных микропроцессоров. Он достигнут за счет эффективной загрузки аппаратуры распараллеливающим программу компилятором.
Реализовав логическую составляющую архитектуры "Эльбрус" в первом процессоре, компания МЦСТ планирует развивать эту линию аналогично своей серии микропроцессоров с архитектурой SPARC. В 2009 году появится одноядерный микропроцессор "Эльбрус-S" с тактовой частотой 500 МГц, спроектированный по технологическим нормам 90 нм. По сравнению с микропроцессором "Эльбрус", в "Эльбрус-S" восьмикратно увеличен объем кэш-памяти (до 2048 Кбайт) и вдвое возросла пропускная способность канала памяти (8 Гбайт/с). Введено три дуплексных канала межпроцессорного обмена и канал доступа к подсистеме ввода-вывода с пропускной способностью в одном направлении 2 и 1 Гбайт/с, соответственно.
На основе "Эльбрус-S" предусматривается создание вычислительных модулей в четырехпроцессорной конфигурации с распределенной когерентной оперативной памятью, аналогичных приведенной на рис.2б. В дальнейшем они должны стать элементом многопроцессорных высокопроизводительных вычислительных систем платформы "Эльбрус".
Платформа "Эльбрус" для российского суперкомпьютера
Одна из тенденций в современной практике создания суперкомпьютеров – использование микропроцессоров, разработанных лидерами мирового компьютеростроения, которые стали своего рода стандартом и выпускаются массовыми сериями для самых различных применений. Среди критериев, определяющих выбор базового микропроцессора, помимо экономических соображений особое значение имеют вычислительная мощность (в первую очередь, тактовая частота), отработанная на нескольких поколениях микропроцессоров архитектура, и, естественно, возможность установить мощную современную операционную систему, предоставляющую программистам богатые сервисные возможности и самый широкий набор актуальных программных приложений. Мировой опыт показывает, что по совокупности этих и других характеристик предпочтение, как правило, отдают микропроцессорам с архитектурой Intel x86. Из этого следует, что в последующие годы во всем мире основной объем программного обеспечения для суперкомпьютеров будет рассчитан на эту платформу.
Другая принципиальная проблема – опережающий рост вычислительной мощности современных микропроцессоров по отношению к времени обращения в память. Особенно негативно влияние этого фактора на выполнение задач со слабой пространственно-временной локализацией данных. Наиболее адекватно данная проблема решалась в многопроцессорных системах с общей памятью с мощным параллельным доступом к ней и когерентным протоколом кэширования. Эти ключевые моменты хорошо соответствуют решениям, заложенным в платформу "Эльбрус". При высокой логической скорости, особенно на приложениях, свойственных суперкомпьютерам, она гарантирует полную и эффективную совместимость с платформой Intel x86. В том числе – при выполнении прикладных программ под управлением операционной системы Linux. Напомним, технологию двоичной компиляции еще в 2002 году реализовала фирма Transmeta в серийных микропроцессорах Crusoe для обеспечения их совместимости с Intel х86. Вычислительная система на основе Crusoe отличалась высокой надежностью, компактностью и малым энергопотреблением. Но ее производительность на приложениях, активно использующих вещественные операции, была недостаточной из-за сравнительно небольшой производительности микропроцессора.
В отличие от Crusoe, производительность микропроцессора "Эльбрус" на вещественных операциях на порядок выше благодаря оптимизирующему компилятору. При этом он также характеризуется низким энергопотреблением. Существенно и то, что архитектура "Эльбрус" за счет устройства предварительной подкачки данных обеспечивает мощный параллельный поток обращений в память с темпом подкачки два байта на одну вещественную операцию. Это соответствует характеристикам лучших, самых современных суперкомпьютеров, таких как Cray BlackWidow (2 байта/операция) или NEC SX-9 (2,5 байта/операция) – лидера по этому параметру.
Тщательная оценка возможностей компании МЦСТ и перспектив отечественной микроэлектроники показывает реальность выполнения программы по созданию серии компьютеров высокой и сверхвысокой производительности на базе платформы "Эльбрус" (рис.5).
Если требования национальной безопасности заставят отказаться от создания и использования суперкомпьютеров, построенных на импортных компонентах (в первую очередь, это касается микропроцессоров), то архитектурная платформа "Эльбрус" и технология двоичной компиляции позволят "мягко" перейти на полностью российский суперкомпьютер. При необходимости она обеспечит полную и достаточно эффективную совместимость с архитектурой Intel x86, доминирующей сегодня в суперкомпьютерах. В этом случае открывается возможность для интегральных решений, позволяющих соединить в едином проекте наиболее перспективные отечественные разработки.
Опыт ИТМ и ВТ был в полной мере использован компанией ЗАО "МЦСТ", образованной в начале 90-х годов прошлого века рядом ведущих специалистов проекта "Эльбрус". В связи с острой потребностью в обновлении информационно-вычислительных средств, компания приступила к созданию микропроцессоров серии "МЦСТ-R" и вычислительных комплексов серии ВК "Эльбрус-90 микро" на их основе. По требованию заказчика, все основные компоненты вычислительных машин и их системное программное обеспечение должны были быть отечественной разработки. Речь шла не только о микропроцессоре, но и о системных и периферийных контроллерах. Все эти требования при проектировании ВК "Эльбрус-90 микро" были выполнены. Поскольку пока в России нет полупроводниковых производств с современными технологическими нормам, микропроцессоры по документации компании МЦСТ изготавливаются тайваньской фирмой TSMC. Сами же вычислительные комплексы производятся российскими предприятиями.
С 2006 года в проектах компании МЦСТ участвуют специалисты ОАО "ИНЭУМ", имеющие большой опыт в создании вычислительных средств и их программного обеспечения. Перспективные планы объединенного коллектива направлены на создание компьютеров для ответственных применений. Принципиальной задачей является разработка суперкомпьютера за счет комплексирования многопроцессорных и многомашинных конфигураций на базе отечественных микропроцессоров с передовыми конструктивно-технологическими показателями.
SPARC-совместимые микропроцессоры
В качестве основы серии микропроцессоров "МЦСТ-R" была выбрана архитектура SPARC (Scalable Processor Architecture) компании Sun Microsystems – хорошо освоенная, открытая RISC-архитектура универсальных высокопроизводительных микропроцессоров. Сохранив совместимость с аналогами с точки зрения системы команд и программной модели, в структуру микропроцессоров "МЦСТ-R" было введено множество усовершенствований, направленных на увеличение производительности. Освоив на первом этапе технологические нормы 350 нм при создании микропроцессора "МЦСТ-R150" с тактовой частотой 150 МГц, компания разработала одноядерный микропроцессор "МЦСТ-R500" с тактовой частотой 500 МГц по технологии 130 нм (см. таблицу). Выбор тактовых частот определялся, главным образом, возможностями компании в области полузаказного проектирования, ограниченными ее ресурсами. Одновременно был реализован набор системных контроллеров для подключения оперативной памяти, периферийных шин, межсистемных каналов и каналов ввода-вывода. Также был создан комплект периферийных контроллеров ряда стандартных и специальных интерфейсов.
Основными компонентами системного программного обеспечения стали оптимизирующий компилятор с языков С/С++ и операционная система. Компанией разработаны три ее версии на базе операционных систем Solaris и Linux. Они дополнены средствами защиты от несанкционированного доступа и поддержки работы в многопроцессорных и многомашинных комплексах, большим набором специальных драйверов.
Все это позволило приступить к выпуску вычислительных комплексов "Эльбрус-90 микро", преимущественно предназначенных для перебазируемых и встраиваемых систем. Сейчас эти комплексы производятся в различных модификациях и используются в объектах ряда систем стратегического назначения. К концу 2008 года заказчикам в общей сложности поставлено более 2000 вычислительных комплексов "Эльбрус-90 микро".
Дальнейшее развитие линии микропроцессоров со SPARC-совместимой архитектурой направлено на повышение производительности за счет конструктивно-технологических ресурсов. С 2008 года начато серийное производство микропроцессора "МЦСТ-R500S" (технология 130 нм) с тактовой частотой 500 МГц, который включает два процессорных ядра, общую кэш-память второго уровня, коммутатор и набор контроллеров, образующих почти полную схему современного компьютера (без оперативной памяти и внешних устройств). Созданная компанией система на кристалле позволила существенно повысить скорость вычислений относительно "МЦСТ-R500", который до этого обладал высшей производительностью среди отечественных микропроцессоров.
Микропроцессоры "МЦСТ-R500" и "МЦСТ-R500S" реализуют 32-разрядную версию архитектуры SPARC (v8). В 2011 году планируется начать серийное производство 4-ядерного микропроцессора "МЦСТ-4R", соответствующего 64-разрядной версии SPARC (v9), с тактовой частотой 1 ГГц. Процессор выполнен по технологическим нормам 90 нм. В этом проекте особое внимание уделяется созданию системы на кристалле, позволяющей строить высокопроизводительные многопроцессорные конфигурации. Такая возможность характерна для всех проектов ЗАО "МЦСТ". Для этого практически одновременно выпускается новое поколение СБИС микропроцессоров и одноплатных процессорных модулей на их основе.
Линия SPARC-совместимых процессоров сыграла важнейшую роль в расширении проектных возможностей компании МЦСТ. Реализация достаточно простых, хорошо документированных и широко используемых архитектурных принципов оказалась весьма полезной для специалистов МЦСТ при освоении ими новых микропроцессорных технологий.
Вычислительные комплексы на базе микропроцессоров с архитектурой SPARC
Проектирование вычислительных комплексов на базе собственных микропроцессоров потребовало от компании развернуть работу по ряду направлений, основное из которых – создание процессорных модулей, выпуск функционально полной номенклатуры периферийных контроллеров, разработка конструктива в соответствии с определенным форм-фактором и назначением. В течение последних лет эти задачи решаются применительно к серии ВК "Эльбрус-90 микро", в которой используется микропроцессор "МЦСТ-R500".
Процессорный модуль на базе микропроцессоров "МЦСТ-R500" по существу является одноплатной универсальной ЭВМ – он способен функционировать во встроенных применениях, но может непосредственно или с некоторыми модификациями использоваться в качестве материнской платы вычислительного комплекса. В рамках данной серии ВК был разработан процессорный модуль МV/C с максимальной производительностью 1750 MIPS и 685 MFlops. Он содержит до четырех микропроцессоров, подключенных через системную шину MBus к общей оперативной памяти объемом до 1 Гбайт, периферийные шины SBus и PCI, а также набор встроенных системных и периферийных контроллеров.
В номенклатуру периферийных контроллеров компании МЦСТ входят Ethernet 10/100, SCSI, USB, IDE, RS-232, RS-422, RS-485, PS/2, EBus, IEEE 1284, Manchester 2, аудио- и видеоконтроллеры, контроллеры прерываний и таймеров, а также ряд специальных контроллеров, разработанных для вычислительных комплексов на объектах заказчиков.
Процессорные и периферийные модули выпускаются в различных форм-факторах, соответствующих конструктиву вычислительного комплекса. Уже реализовано исполнение в вариантах Pizza Box, Compact PCI, ATX, EATX, ETX, PMC.
Эти разработки позволили компании МЦСТ приступить к выпуску вычислительного комплекса "Эльбрус-90 микро" в различных исполнениях, включая перебазируемую модель, шкафное исполнение для стационарных применений, в конструктивах "Евромеханика", персонального компьютера и ноутбука (рис.1), а также для АРМ оператора.
Базовым модулем следующего поколения ВК линии SPARC должна стать одноплатная многомашинная система, включающая четыре микросхемы "МЦСТ-R500S" (рис.2а). В их структуре системная общая шина заменена коммутатором, который обеспечивает высокоскоростной доступ каждого из двух процессорных ядер в собственную память или к "закольцованным" через контроллеры прямого доступа к удаленной памяти (RDMA) блокам локальной памяти остальных процессоров. Общий объем распределенной оперативной памяти – 8 Гбайт. Помимо набора встроенных контроллеров для автономной работы модуль MVC/C позволяет использовать дополнительные контроллеры. Для их установки предусмотрены два посадочных места на шине PCI.
Одноплатный процессорный модуль на базе СБИС "МЦСТ-4R" (рис.2б) позволяет увеличить объем распределенной оперативной памяти до 32 Гбайт, при этом контроллеры когерентности обеспечивают согласованность данных в кэш-памяти и оперативной памяти в многопроцессорных системах. Каналы межпроцессорного обмена позволяют соединить процессоры по принципу "каждый с каждым", что существенно сокращает время доступа к памяти и к подсистеме ввода-вывода других машин.
В ближайших планах компании МЦСТ – разработка мультиконтроллера южного моста, подключаемого к каналу доступа подсистемы ввода-вывода процессора. В состав мультиконтроллера входит набор периферийных контроллеров (интерфейсы PCI, PCI Express, IDE, Ethernet 10/100/1000, I2C/SPI, IEEE-1284, RS-232, AC-97, GPIO, контроллеры прерываний и таймеров). Возможности микропроцессоров "МЦСТ-R500S", "МЦСТ-4R" и разработанных для них периферийных контроллеров позволяют и далее наращивать общую производительность вычислительных систем за счет создания многоплатных конфигураций.
Архитектура "Эльбрус"
Важнейший результат деятельности компании МЦСТ – разработка микропроцессорной архитектуры "Эльбрус", ориентированной на достижение наивысшей производительности. Это принципиальный базис крупномасштабных информационно-вычислительных систем для сложной обработки большого объема данных. Главные особенности архитектуры – высокая степень параллелизма во всех определяющих элементах вычислительного процесса, полная и эффективная двоичная совместимость с платформой Intel x86 на базе скрытой динамической трансляции, аппаратная поддержка защищенного исполнения программ.
Ключевой фактор, определивший высокую производительность архитектуры "Эльбрус", – максимальный при наличных аппаратных ресурсах параллелизм вычислительного процесса на уровне операций. Он достигается за счет архитектуры команд с так называемым широким командным словом (VLIW). В одной VLIW-команде кодируется несколько операций, которые исполняются параллельно, каждая в своем конвейере. Поскольку время выполнения операции детерминировано, можно уже на стадии компиляции, контролируя информационные зависимости и занятость ресурсов, планировать каждый такт работы процессора. Эффективность такого подхода существенно зависит от размера широкой команды, номенклатуры операций и их сочетаний, разрешенных для выполнения в одном такте процессора. В микропроцессоре "Эльбрус" максимальная длина команды составляет 64 байта, что позволяет включить в нее до 23 простых RISC-операций (полная номенклатуры включает операции нескольких классов – как достаточно традиционных, так и обусловленных архитектурными новациями процессора). Микропроцессор содержит шесть каналов для выполнения арифметических и логических операций, каждый из них – с собственным набором исполнительных устройств, рассчитанных на целочисленные и вещественные операнды.
Традиционно скалярные и векторные вычисления ассоциируются с различными архитектурными концепциями. Отличие в том, что при скалярных вычислениях скорость счета главным образом ограничивается информационными зависимостями между различными операциями. При векторных же вычислениях более важна возможность максимально загрузить исполнительные устройства операциями, заданными в программе.
Существенно, что параллельное исполнение операций за счет широкого командного слова эффективно как в скалярных, так и в векторных вычислениях. Более того, ряд решений в архитектуре "Эльбрус" способствует ускорению каждого из этих процессов. Для скалярных вычислений реализованы спекулятивный и предикатный режимы исполнения операций, предварительная подкачка кода обеих ветвей. Введение файла предикатов позволяет параллельно вычислять несколько условий. Это важно не только для скалярных вычислений с условным выполнением операций, но и для работы в циклах, содержащих условные ветви. Для векторных вычислений аппаратно поддержано выполнение циклов методом программного конвейера. Благодаря широкому командному слову на каждом шаге программного конвейера могут выполняться операции из разных итераций, причем их может быть много. Это существенно ускоряет векторные вычисления.
В ряде случаев эффективность векторных вычислений определяется временем обращения к массивам в оперативной памяти. Оно зависит от типа массивов и их расположения в структуре памяти. При определенных условиях задержки обращения к массивам могут существенно замедлить вычисления. На производительность вычислений отрицательно влияет и необходимость заранее резервировать ячейки регистрового файла под элементы вызываемого массива. Поэтому в архитектуру "Эльбрус" введен буфер предварительной подкачки, в который заблаговременно, на фоне текущих вычислений, загружаются элементы массива для последующих итераций цикла. Данные хранятся в буфере подкачки и передаются в регистровый файл непосредственно перед использованием.
Рассмотренные достоинства архитектуры "Эльбрус", перечень которых далеко не исчерпан, в совокупности можно определить как "производительность за счет параллелизма". Но это – не единственная особенность архитектуры. Еще в начале проекта все понимали, что успех возможен только в том случае, если новая архитектура покажет свои достоинства в сравнении с эталонными платформами, для которых разработана основная масса программного обеспечения. Эта идея весомо подкреплялась требованием заказчика обеспечить переносимость специального программного обеспечения, созданного за последние годы на зарубежной технике. В результате была реализована вторая принципиальная особенность архитектуры "Эльбрус" – полная и эффективная (за счет параллелизма) двоичная совместимость с платформой Intel x86 на базе скрытой динамической двоичной компиляции и ее поддержки в аппаратуре. Речь идет о совместимом представлении данных, реализации полного набора операций Intel x86, введении отдельного пространства виртуальной памяти для программ для Intel x86, совместимом формате таблицы страниц и о ряде других системных решений.
Уже на первых этапах формирования архитектуры требовалось обеспечить условия для разработки надежного программного обеспечения при выполнении масштабных проектов с участием больших коллективов программистов и в сжатые сроки. Решение заключалось в реализации защищенного исполнения программ – это третья принципиальная особенность архитектуры "Эльбрус". Она основана на контекстной защите памяти, при которой на аппаратном уровне (типизация данных с помощью тегов) фиксируются любые нарушения защиты памяти, воспринимаемые в обычных системах как "неопределенное поведение". Соответственно, выявляются опасные и сложные ошибки, отнимающие заметное время даже у опытных программистов. Достаточно отметить, что при проведении государственных испытаний на ВК "Эльбрус-3М1" выполнялись проверки, в результате которых были зафиксированы ошибки (нарушение границ объекта, использование неинициализированных данных, использование опасных конструкций языка или опасных отклонений от стандарта языка) в 4 из 7 задачах пользователей, в 7 из 8 задачах пакета SPECint95, в 874 из 888 тестах пакета SAMATE, содержащих собранные по миру ошибочные фрагменты программ.
Реализация архитектуры "Эльбрус"
Описанная архитектура реализована в микропроцессоре "Эльбрус" (технология 130 нм, тактовая частота 300 МГц, площадь кристалла – 189 мм2, 75,8 млн. транзисторов) и в двухпроцессорном вычислительном комплексе "Эльбрус-3М1" на его основе (рис.3), государственные испытания которых успешно завершились в конце 2007 года, а в 2008 году началось серийное производство и поставки. Успешно прошли испытания и общее программное обеспечение ВК "Эльбрус-3М1". Оно включает защищенную операционную систему МСВС-Э, систему программирования (содержит оптимизирующий компилятор, библиотеку поддержки языков высокого уровня и другие составляющие систем языкового программирования, а также системы двоичной трансляции для исполнения двоичных кодов платформы Intel x86), комплекс пользовательских сервисных программ и др. – всего более 100 млн. строк С/С++, вновь разработанных и доработанных под платформу "Эльбрус".
На испытаниях была зафиксирована пиковая производительность микропроцессора для 32-разрядных данных 6,9 GIPS / 4,8 GFlops. Эффективность оптимизирующего компилятора (точнее, эффективность оптимизирующей компиляции применительно к архитектуре "Эльбрус") подтвердило сравнение пиковой производительностью микропроцессора c его производительностью на реальных задачах. В частности, для задач умножения матриц (DGEMM) с 32- и 64-разрядными данными реальная производительность составила 4,5 и 2,3 GFlops, соответственно, при пиковой 4,8 и 2,4 GFlops. В целом удельная производительность микропроцессора составила 16 GFlops/Гц.
Реализуя архитектуру "Эльбрус", компания МЦСТ вышла на новый, гораздо более высокий уровень проектирования микросхем по сравнению с серийно выпускаемым микропроцессором "МЦСТ-R500" (на этом же уровне разработан и выпущен процессор "МЦСТ –R500S"). Однако технология уровня 130 нм и полузаказное проектирование не позволили в микропроцессоре "Эльбрус" поднять тактовую частоту выше 300 МГц. Тем не менее, следовало экспериментально показать достоинства архитектуры "Эльбрус" относительно процессоров семейства Intel х86, работающих на несравненно более высокой частоте. Для этого было выполнено прямое исполнение в кодах Intel x86 более 20 операционных систем (MSDOS, Windows XP, Linux, QNX и др.) и более 1000 популярных приложений. Продемонстрированная при этом полная совместимость позволила провести "гонки" на производительность с микропроцессором Pentium 4 (1,4 ГГц) (рис.4). В результате на 21 задаче пользователей производительность ВК "Эльбрус-3М1" в однопроцессорном режиме была равна в среднем производительности компьютера на основе Pentium 4 с тактовой частотой 2 ГГц.
Испытания ВК "Эльбрус-3М1" в однопроцессорном режиме показали увеличение быстродействия в среднем в 5,2 раза относительно ВК "Эльбрус-90 микро" (500 МГц) и в 1,44 раза относительно компьютера на основе Pentium 4 (1,4 ГГц). При столь высокой производительности энергопотребление процессора мало – отношение производительности к мощности превышает 0,4 GFlops/Вт, что является превосходным показателем для универсальных одноядерных микропроцессоров. Он достигнут за счет эффективной загрузки аппаратуры распараллеливающим программу компилятором.
Реализовав логическую составляющую архитектуры "Эльбрус" в первом процессоре, компания МЦСТ планирует развивать эту линию аналогично своей серии микропроцессоров с архитектурой SPARC. В 2009 году появится одноядерный микропроцессор "Эльбрус-S" с тактовой частотой 500 МГц, спроектированный по технологическим нормам 90 нм. По сравнению с микропроцессором "Эльбрус", в "Эльбрус-S" восьмикратно увеличен объем кэш-памяти (до 2048 Кбайт) и вдвое возросла пропускная способность канала памяти (8 Гбайт/с). Введено три дуплексных канала межпроцессорного обмена и канал доступа к подсистеме ввода-вывода с пропускной способностью в одном направлении 2 и 1 Гбайт/с, соответственно.
На основе "Эльбрус-S" предусматривается создание вычислительных модулей в четырехпроцессорной конфигурации с распределенной когерентной оперативной памятью, аналогичных приведенной на рис.2б. В дальнейшем они должны стать элементом многопроцессорных высокопроизводительных вычислительных систем платформы "Эльбрус".
Платформа "Эльбрус" для российского суперкомпьютера
Одна из тенденций в современной практике создания суперкомпьютеров – использование микропроцессоров, разработанных лидерами мирового компьютеростроения, которые стали своего рода стандартом и выпускаются массовыми сериями для самых различных применений. Среди критериев, определяющих выбор базового микропроцессора, помимо экономических соображений особое значение имеют вычислительная мощность (в первую очередь, тактовая частота), отработанная на нескольких поколениях микропроцессоров архитектура, и, естественно, возможность установить мощную современную операционную систему, предоставляющую программистам богатые сервисные возможности и самый широкий набор актуальных программных приложений. Мировой опыт показывает, что по совокупности этих и других характеристик предпочтение, как правило, отдают микропроцессорам с архитектурой Intel x86. Из этого следует, что в последующие годы во всем мире основной объем программного обеспечения для суперкомпьютеров будет рассчитан на эту платформу.
Другая принципиальная проблема – опережающий рост вычислительной мощности современных микропроцессоров по отношению к времени обращения в память. Особенно негативно влияние этого фактора на выполнение задач со слабой пространственно-временной локализацией данных. Наиболее адекватно данная проблема решалась в многопроцессорных системах с общей памятью с мощным параллельным доступом к ней и когерентным протоколом кэширования. Эти ключевые моменты хорошо соответствуют решениям, заложенным в платформу "Эльбрус". При высокой логической скорости, особенно на приложениях, свойственных суперкомпьютерам, она гарантирует полную и эффективную совместимость с платформой Intel x86. В том числе – при выполнении прикладных программ под управлением операционной системы Linux. Напомним, технологию двоичной компиляции еще в 2002 году реализовала фирма Transmeta в серийных микропроцессорах Crusoe для обеспечения их совместимости с Intel х86. Вычислительная система на основе Crusoe отличалась высокой надежностью, компактностью и малым энергопотреблением. Но ее производительность на приложениях, активно использующих вещественные операции, была недостаточной из-за сравнительно небольшой производительности микропроцессора.
В отличие от Crusoe, производительность микропроцессора "Эльбрус" на вещественных операциях на порядок выше благодаря оптимизирующему компилятору. При этом он также характеризуется низким энергопотреблением. Существенно и то, что архитектура "Эльбрус" за счет устройства предварительной подкачки данных обеспечивает мощный параллельный поток обращений в память с темпом подкачки два байта на одну вещественную операцию. Это соответствует характеристикам лучших, самых современных суперкомпьютеров, таких как Cray BlackWidow (2 байта/операция) или NEC SX-9 (2,5 байта/операция) – лидера по этому параметру.
Тщательная оценка возможностей компании МЦСТ и перспектив отечественной микроэлектроники показывает реальность выполнения программы по созданию серии компьютеров высокой и сверхвысокой производительности на базе платформы "Эльбрус" (рис.5).
Если требования национальной безопасности заставят отказаться от создания и использования суперкомпьютеров, построенных на импортных компонентах (в первую очередь, это касается микропроцессоров), то архитектурная платформа "Эльбрус" и технология двоичной компиляции позволят "мягко" перейти на полностью российский суперкомпьютер. При необходимости она обеспечит полную и достаточно эффективную совместимость с архитектурой Intel x86, доминирующей сегодня в суперкомпьютерах. В этом случае открывается возможность для интегральных решений, позволяющих соединить в едином проекте наиболее перспективные отечественные разработки.
Отзывы читателей