Вы здесь

Двухъядерная гетерогенная система на кристалле ЭЛЬБРУС-2С+

Рассмотрены архитектура и технические характеристики системы, включающей в одном кристалле два процессорных ядра, кэш-память, системные и периферийные контроллеры, а также кластер процессоров обработки цифровой сигнальной информации (DSPs, digital signal processors). Проанализированы основные проблемы и инженерные решения, сопутствующие выполнению проекта.

М.В. Исаев, А.С. Кожин, В.О. Костенко, Н.Ю. Поляков, д.т.н., проф. Ю.Х. Сахин

(ЗАО «МЦСТ», ОАО «ИНЭУМ им. И.С. Брука»)

 

M. Isaev, A. Kozhin, V. Kostenko, N. Polyakov, Y. Sakhin

 

ДВУХЪЯДЕРНАЯ ГЕТЕРОГЕННАЯ СИСТЕМА НА КРИСТАЛЛЕ
«ЭЛЬБРУС-2С+»

 

DUAL-CORE HETEROGENEOUS SYSTEM-ON-CHIP «ELBRUS-2S+»

 

Рассмотрены архитектура и технические характеристики системы, включающей в одном кристалле два процессорных ядра, кэш-память, системные и периферийные контроллеры, а также кластер процессоров обработки цифровой сигнальной информации (DSPs, digital signal processors). Проанализированы основные проблемы и инженерные решения, сопутствующие выполнению проекта.

Ключевые слова: Эльбрус, архитектура, многоядерность, двухъядерный процессор, ЦОС, радиолокация, система на кристалле, СнК, объединение ядер, организация памяти, подсистема памяти, гетерогенные системы.

 

This paper describes architecture features and technical specification of new processor which consists of two cores, cache, system and peripheral controllers and DSP-cluster. The main problems and  engineering solution leading to project performing are analyzed.

Keywords: Elbrus, architecture, multi-core, dual-core, DSP, radiolocation, system-on-chip, SoC, core integration, memory management, memory subsystem, heterogeneous systems.

 

Введение

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

В первую очередь здесь надо отметить разработку микропроцессоров, в которых практически линейное приращение производительности достигается путем добавления процессорных ядер. Эффективность такого подхода была доказана уже на примере первых коммерческих многоядерных процессоров, таких как Intel Pentium D и AMD Athlon X2.

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

И, наконец, всё более очевидные преимущества демонстрирует создание гетерогенных процессоров, которые, наряду с универсальными, имеют специализированные ядра, предназначенные для быстрой обработки данных в определенных применениях [1].

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

В статье дается более подробное представление этой разработки. 

 

1. Принципиальные решения

Вышеуказанному проекту ЗАО «МЦСТ» предшествовали два других: в микропроцессоре «Эльбрус» был реализован одноядерный процессор, работающий на частоте 300 МГц [2], который затем был усовершенствован в системе на кристалле «Эльбрус-С», имеющей частоту 500 МГц, кэш-память второго уровня с емкостью, увеличенной с 256 Кбайт до 2 Мбайт [3], и дополнительно встроенные контроллер оперативной памяти DDR2-500 и контроллер ввода/вывода. Кроме того, второй проект давал новые возможности при создании многопроцессорных систем на его основе. Если на общей шине памяти можно было объединить два процессора «Эльбрус», то микросхема «Эльбрус-С» позволяла создавать системы из четырёх процессоров, связанных с помощью межпроцессорных линков в конфигурации с общей памятью [4].

При оценке путей ее дальнейшего усовершенствования было решено увеличить количество процессорных ядер до двух и, соответственно, поднять пропускную способность интерфейсов с памятью и вводом/выводом. Принципиально новым требованием, поставленным заказчиками, стало введение кластера обработки цифровой сигнальной информации, состоящего из четырёх DSP-процессоров с архитектурой ElCore, разработанных ФГУП НПЦ «Элвис». Таким образом, сформировалось видение новой разработки – ей должна была стать система на кристалле (СнК) «Эльбрус-2С+», основанная на своей предшественнице («Эльбрус-С»), но имеющая два процессорных ядра с архитектурой «Эльбрус», DSP-кластер, расширенный интерфейс оперативной памяти и расширенный интерфейс ввода вывода.

Стоит отметить, что компании предстояло выполнить этот проект в достаточно непростых условиях – при ограниченности времени, отведенного на разработку и отладку, и нехватке квалифицированных разработчиков, функции которых были переданы студентам базовой кафедры МФТИ. Поэтому в интересах проекта было решено использовать часть оборудования процессора «Эльбрус-С» в качестве IP-блоков для разрабатываемой СнК.

IP-блоками новой микросхемы стали процессорные ядра, включая L2-кэш (небольшие изменения потребовались лишь на уровне устройства доступа в память), и набор распределенной интерфейсной логики System Interface Controller (SIC), включающий контроллеры межпроцессорных линков и ввода/вывода и контроллер памяти. Все изменения, связанные с увеличением частоты оперативной памяти, были выполнены в контроллере памяти и не коснулись остальной системы. DSP-кластер также выступал как отдельный IP-блок, изготовленный ФГУП НПЦ «Элвис».

 

2. Изменения и усовершенствования в процессоре «Эльбрус-2С+»

Общая схема СнК «Эльбрус-2С+» приведена на рис. 1. Ее центральным узлом является системный коммутатор SC, связывающий процессорные ядра с памятью, южным мостом и контроллером ADC, ответственным за обмен сигнальной информацией, DSP-кластером и тремя межпроцессорными линками.

Система на кристалле «Эльбрус-2С+» 

Рис. 1

Система на кристалле «Эльбрус-2С+»

 

При постановке проекта были определены четыре основные задачи [5]:

  1. объединение двух универсальных ядер «Эльбрус» в системе;
  2. подключение DSP-кластера (обеспечение его взаимодействия с памятью и ядрами «Эльбрус»);
  3. подключение канала ввода цифровой сигнальной информации;
  4. увеличение тактовой частоты контроллера памяти.

В качестве первого решения был выбран вариант объединения на основе межъядерного коммутатора (контроллера межъядерных взаимодействий – Core Integration Controller, CIC). Поскольку, с точки зрения системного коммутатора SC, запросы на чтение и запись в систему от обоих ядер должны были выглядеть так, как будто СнК содержит лишь одно ядро, следовало организовать арбитраж запросов. При этом нужно было принять во внимание, что, хотя из-за наличия двух ядер максимальное количество операций чтения и записи в новой СнК вдвое больше, чем в микропроцессоре «Эльбрус-С», общее число запросов, одновременно обрабатываемых в системном коммутаторе SC, должно было остаться таким же, как и в системном коммутаторе «Эльбрус-С».

В связи с этим в составе коммутатора CIC был разработан контроллер запросов MAU (MAU Request Controller, MRC). Он осуществляет круговой арбитраж запросов, выдавая в SC поочередно запросы от каждого из ядер. Контроль количества запросов по чтению/записи в системе реализован с использованием аппаратного перенумерования операций обмена. Контроллер содержит очередь перенумерования, состоящую из 32-регистрового буфера перенумерования операций чтения (LDR) и 16-регистрового буфера перенумерования операций записи (STR). Обработка очередного запроса начинается с того, что при наличии свободного регистра в LDR (или STR) контроллер MRC помещает в него копию (частичную) запроса. Далее запрос отправляется в системный коммутатор, причем содержащийся в нем номер регистра MAU, где запрос хранится в выдавшем его ядре, заменяется номером регистра в LDR (или STR), присвоенным этому запросу в MRC. При приеме из SC ответа выполняется чтение из соответствующего регистра LDR (или STR), что позволяет восстановить исходный номер регистра MAU для выдачи в сформировавшее запрос ядро.

Другой проблемой, решенной при проектировании контроллера межъядерных взаимодействий CIC, является внесение необходимых доработок в протокол когерентности, использующийся в многопроцессорном комплексе на базе «Эльбрус-С» и реализованный в распределенной системе на основе системных коммутаторов SC. Для этого в составе CIC был разработан контроллер когерентных сообщений Coh_box, который располагается между системным коммутатором SC и ядрами, анализирует когерентные запросы от SC и выборочно передает эти запросы нужным ядрам. Также этот контроллер принимает когерентные ответы от ядер и при необходимости объединяет каждую пару ответов (т.е. ответы от разных ядер на один и тот же когерентный запрос) в обобщенный когерентный ответ в формате одноядерной системы. Таким образом, доработка MAU и SC в новой системе на кристалле сведена к изменениям на интерфейсном уровне [6].

Следующей проблемой стала интеграция в новую СнК четырёхъядерного DSP-кластера (IP-блока). Он работает в составе системы на кристалле под управлением универсальных ядер «Эльбрус», которым доступны все его адресуемые ресурсы – регистры и память. Во внутреннюю прямоадресуемую память кластера записывается программа для DSP-ядер, запуск и управление которыми осуществляется посредством операций универсальных ядер с регистрами кластера. Такие операции организованы аналогично обменам с внешними устройствами, поэтому далее они будут именоваться «I/O-обменами».

DSP-кластеру доступна не только его внутренняя память, но и память всей СнК. Пересылка данных между ними (DMA-обмен) осуществляется восьмиканальным DMA-контроллером DSP-кластера, выполняющим задания универсальных ядер «Эльбрус».

Взаимодействие универсальных ядер с ядрами DSP осуществляется через интерфейсный AXI-контроллер, разработанный для новой системы на кристалле. Он связан с кластером через интерфейс, основанный на протоколе AMBA AXI 3.0 фирмы ARM [7]. Этот протокол был выбран ввиду универсальности и возможности построения быстродействующего внутреннего интерфейса на его основе. Данные передаются AXI-контроллером по четырем раздельным каналам (DMA-чтение, DMA-запись, I/O-чтение, I/O-запись), каждый из которых имеет пропускную способность 4 Гбайт/с и работает на частоте ядер «Эльбрус» и DSP (500 МГц).

Оперативная память СнК используется, помимо прочего, в качестве буфера данных, пересылаемых между аналогово-цифровыми преобразователями (АЦП) и DSP-кластером. С учетом этого обстоятельства необходимо было выполнить анализ соотношений пропускной способности соответствующих интерфейсов. Во-первых, следует учесть, что основной (и единственный) I/O-канал системы «Эльбрус-С» рассчитан на пропускную способность 1 Гбайт/с в каждую сторону, в то время как DMA-каналы AXI-контроллера – на 4 Гбайт/с. Во-вторых, основной I/O-канал системы «Эльбрус-С» должен обслуживать жесткий диск SATA (300 Мбайт/с), Gigabit Ethernet (125 Мбайт/с), PCI Express (до 4 Гбайт/с), а также ряд других абонентов. В силу этого в состав новой системы на кристалле введен дополнительный I/O-канал, предназначенный для ввода цифровой сигнальной информации из АЦП, а также специальный контроллер этого канала, что делает передачу данных из АЦП в кластер независимой от работы внешних устройств ввода/вывода. Таким образом, СНК содержит три контроллера ввода/вывода: основной и дополнительный контроллеры внешних I/O-каналов, а также AXI-контроллер для подключения DSP-кластера.

Еще одной важной задачей, которую было необходимо решить при проектировании микросхемы «Эльбрус-2С+», стало увеличение частоты оперативной памяти для повышения ее пропускной способности. Традиционно контроллеры оперативной памяти работают синхронно с самой памятью, поэтому в микропроцессоре «Эльбрус-С» контроллер памяти MC (Memory Controller) функционировал на частоте 250 МГц (DDR2-500), кратной частоте процессора. В разрабатываемой микросхеме, ввиду сложностей конвейеризации и физического дизайна, контроллер MC был разделен на два частотных домена: домен ядра контроллера и домен интерфейса с памятью. Частота ядра контроллера памяти равна 200 МГц, т.е. в два раза ниже частоты второго домена и самой памяти. Такой подход делает возможным дальнейшее повышение частоты без значительных изменений архитектуры контроллера. Т.к. частота процессора осталась прежней (500 МГц), требовалось разработать новую схему передачи данных между доменами с некратным соотношением частот (5:2, 5:4). В ее основу лег принцип использования «меток пересинхронизации», примененный еще в микропроцессоре «Эльбрус-С» для кратных частот [8]. Под этим понимаются логические сигналы, которые позволяют учитывать положение фронта высокой частоты относительно фронта низкой частоты. Они формируются на высокой частоте и определяют, с какого такта возможна передача. Таким образом, пересылки между доменами являются синхронными. От других возможных решений задачи согласования частотных доменов этот подход отличается минимальными задержками передачи данных при относительно небольшом количестве используемого оборудования. Разработанная схема обеспечивает достаточно гибкую настройку рабочих частот, благодаря чему контроллер памяти СнК «Эльбрус-2С+» при фиксированной частоте процессора 500 МГц поддерживает несколько режимов работы с оперативной памятью: DDR2-800, DDR2-666, DDR2-600 и DDR2-500.

 

3. Характеристики и производительность микросхемы

Характеристики СнК «Эльбрус-2С+» и предварительные оценки ее производительности на пакетах CINT2000 и CFP2000 приведены в табл. 1, 2, 3, соответственно. Из этих данных следует, что система на кристалле «Эльбрус-2С+» является достаточно энергоэффективной и показывает высокую производительность на один ватт. Наличие ядер обработки цифровой сигнальной информации ещё больше расширяет область ее использования. Так, вычислительные комплексы на основе этих микросхем могут эффективно применяться там, где необходима большая пропускная способность и пиковая производительность обработки сигнальной информации, в первую очередь, в радиолокации, ультразвуковой локации. Применения могут быть также найдены в гражданской авиации, геологии, медицине и других областях с похожей спецификой вычислительного процесса.

 

Таблица 1

Основные технические характеристики СнК «Эльбрус-2С+»

Технологический процесс

90 нм

Тактовая частота, МГц

500

Число ядер архитектуры Эльбрус

2

Число ядер DSP (Elcore-09)

4

Пиковая производительность микросхемы
(ядра CPU + ядра DSP)

64 разряда, GFlops

8

Пиковая производительность микросхемы
(ядра CPU + ядра DSP)

32 разряда, GIPS

44

Пиковая производительность микросхемы
(ядра CPU + ядра DSP)

32 разряда, GFlops

28

Кэш-память команд (на ядро), Кб

64

Кэш-память данных (на ядро), Кб

64

Кэш-память второго уровня (на ядро), Мб

1

Встроенная память DSP (на ядро DSP), Кб

128

Пропускная способность шины связи с кэш памятью, Гб/с

16

Пропускная способность шин связи с оперативной памятью (два канала), Гб/с

12,8

Количество каналов межпроцессорного обмена

3

Пропускная способность канала межпроцессорного обмена, Гб/с

4

Количество каналов ввода-вывода

2

Пропускная способность канала ввода-вывода, Гб/с

2

Площадь кристалла, мм2

289

Количество транзисторов, млн.

368

Количество слоев металла

9

Тип корпуса / количество выводов

HFCBGA 1296

Размеры корпуса, мм

37,5 ´ 37,5

Напряжение питания, В

1,0 / 1,8 / 2,5

Средняя рассеиваемая мощность, Вт

~25

 

Таблица 2

Производительность процессора «Эльбрус-2С+» на пакете CINT2000

Название теста

Эталонное время

(Reference time)

Соотношение (Ratio)

164.gzip

1400

439

175.vpr

1400

405

176.gcc

1100

539

181.mcf

1800

560

186.crafty

1000

479

197.parser

1800

341

252.eon

1300

589

253.perlbmk

1800

337

254.gap

1100

288

255.vortex

1900

861

256.bzip2

1500

480

300.twolf

3000

545

gmean

 

469

 

Таблица 3

Производительность процессора «Эльбрус-2С+» на отдельных тестах пакета CFP2000

Название теста

Эталонное время

(Reference time)

Соотношение (Ratio)

168.wupwise

1600

1170

171.swim

3100

3309

172.mgrid

1800

1665

173.applu

2100

1491

177.mesa

1400

653

179.art

2600

11403

183.equake

1300

923

188.ammp

2200

402

200.sixtrack

1100

447

301.apsi

2600

895

gmean

 

1278

 

Литература

  1. Исаев М.В. Основные тенденции в архитектуре высокопроизводительных многоядерных процессоров. – «Вопросы радиоэлектроники», сер. ЭВТ, 2011, вып. 3.
  2. Волконский В., Груздов Ф., Ким А., Сахин Ю. Эльбрус сегодня. – «Открытые системы», 2009, №2.
  3. Ким А.К., Волконский В.Ю., Груздов Ф.А., Михайлов М.С., Семенихин С.В., Слесарев М.В., Фельдман В.М. Микропроцессорные вычислительные комплексы с архитектурой «Эльбрус» и их программное обеспечение. – «Вопросы радиоэлектроники», сер. ЭВТ, 2009, вып. 3.
  4. Шерстнев А.Е., Зайцев А.И. Организация межпроцессорного обмена в многокластерных системах на базе микропроцессоров «Эльбрус-S» и «МЦСТ-4R». – «Вопросы радиоэлектроники», сер. ЭВТ, 2009, вып. 3.
  5. Исаев М.А., Костенко В.О., Поляков Н.Ю. Проблемы интеграции универсальных ядер архитектуры «Эльбрус» и DSP-кластера в составе системы на кристалле. – «Вопросы радиоэлектроники», сер. ЭВТ, 2010, вып. 3.
  6. Таненбаум Э. Архитектура компьютера. 4-е издание. СПб., Питер, 2006, 704 с.
  7. AMBA AXI Protocol Specification, version 1.0, ARM Limited, 2004.
  8. Кожин А.С. Проблемы передачи данных между асинхронными доменами вычислительного устройства. – «Вопросы радиоэлектроники», сер. ЭВТ, 2011, вып. 3.

 

М.В.Исаев
А.С.Кожин
В.О.Костенко
Н.Ю.Поляков
Ю.Х.Сахин