Мультиклеточные процессоры — новое поколение вычислительных устройств

№ 6’2011
PDF версия
Сложившаяся ситуация на рынке DSP и процессоров, равно как и авторитет основных игроков этого рынка, кажется незыблемой. И все новое происходит там, у них, и все сенсации и «новые слова в технике» мы привыкли слышать оттуда. Тем сильнее было ощущение у автора этих строк — нечто вроде восторженного шока, когда он узнал о проекте «Мультиклет»: разработка, серийное производство и вывод на рынок мультиклеточных процессоров, построенных на базе высокопроизводительных процессорных ядер с принципиально новой архитектурой и минимальным энергопотреблением. И эта принципиально новая мультиклеточная архитектура, дающая значительные преимущества, создана не где-то в Кремниевой долине и не в Зеленограде, а на Урале, в Екатеринбурге.

Введение

Сложившаяся ситуация на рынке DSP и процессоров, равно как и авторитет основных игроков этого рынка, кажется незыблемой. И все новое происходит там, у них, и все сенсации и «новые слова в технике» мы привыкли слышать оттуда. Тем сильнее было ощущение у автора этих строк — нечто вроде восторженного шока, когда он узнал о проекте «Мультиклет» [1]: разработка, серийное производство и вывод на рынок мультиклеточных процессоров, построенных на базе высокопроизводительных процессорных ядер с принципиально новой архитектурой и минимальным энергопотреблением. И эта принципиально новая мультиклеточная архитектура, дающая значительные преимущества, создана не где-то в Кремниевой долине и не в Зеленограде, а на Урале, в Екатеринбурге.

Мультиклет

Первая реакция: не может быть, неужели этим кто-то занимается? Но вот познакомился с описанием, архитектурой, принципом работы (вычислений), а затем и с достигнутыми результатами по реализации данного типа процессора — все серьезно, большой задел, все на самом деле. Создано предприятие, работает команда профессионалов. И, как говорится, дай бог скорее все сделать и вывести на рынок отечественный процессор с революционными характеристиками, которые открывают совершенно новые перспективы и принципы создания электронной аппаратуры. И то, что это совсем не рядовой, а перспективный продукт, подтверждается патентами [2, 3] и рядом наград отечественных и международных, весьма престижных и авторитетных форумов.

Немного о положении дел

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

С момента создания первых процессоров роль абсолютного лидера закрепилась за фон-неймановской архитектурой. Однако, по мнению экспертного сообщества, эпоха этой архитектуры завершается. В International Technology Roadmap for Semiconductors (ITRS) отмечается, что эволюционное развитие доминирующей последние 60 лет на рынке фон-неймановской модели процессора сходит на нет [4].

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

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

В-третьих, согласно ITRS, основной проблемой компьютерной индустрии стала сложность. Она порождает проектные ошибки и увеличивает сроки проектирования микропроцессоров, даже при использовании современных средств автоматизации. Появление этой проблемы в настоящее время — прямое следствие доминирования фон-неймановской архитектуры. А именно — ее основополагающего принципа: представления программы в виде упорядоченной последовательности команд. Абсолютно все шаги, связанные с совершенствованием фон-неймановской архитектуры, были направлены на то, чтобы в какой-то мере обойти или ослабить действие этого принципа, и приводили, в конечном итоге, к постоянному усложнению организации процессоров и/или инструментального программного обеспечения (операционных систем, компиляторов).

В-четвертых, многоядерность, признанная основным направлением развития микропроцессоров, не решает ни одной из существующих проблем компьютерной индустрии. Более того, она усугубляет некоторые из них, например проблему сложности. Являясь экстенсивным направлением развития все той же фон-неймановской парадигмы, она в принципе не может обеспечить качественное совершенствование архитектуры микропроцессоров. Не может многоядерность быть и долговременным трендом. Подавляющее большинство приложений может эффективно задействовать до 4–8 ядер. Это соответствует достигнутому уровню. Дальнейшее увеличение ядер на кристалле оправдано только для ограниченного круга задач.

В-пятых, ни одна из ранее созданных не фон-неймановских моделей не смогла составить какой-либо заметной конкуренции традиционному подходу. И потоковые, и редукционные машины требовали для программирования решаемых задач специальных, неимперативных языков программирования. Учитывая, что все широко используемые языки программирования — это императивные языки, а также учитывая объем программ, созданных на этих языках, и то, что они более адекватно отражают последовательный характер мышления человека, подобные предложения вступали в противоречие с практикой программирования. Они требовали не только переписывания огромного объема программ, но и коренной ломки сложившейся технологии программирования. Таким образом, эффект в одной области компьютерной индустрии достигался бы путем непомерно больших затрат в другой [5].

Характерной рыночной особенностью компьютерной индустрии является быстрое моральное старение продукции. Эта динамика требует постоянного обновления, вывода на рынок все новых и новых изделий. Решать эту задачу, оставаясь в рамках традиционных средств и подходов, все сложнее и сложнее. Для динамики развития рынка необходима качественно новая (пост-неймановская) архитектура, способная на десятилетия определить дальнейшее направление создания микропроцессоров [68].

Особенности архитектуры

Все, кто более или менее связан с процессорами, хорошо знают особенности фон-неймановской архитектуры. Перечислим основные признаки этой архитектуры:

  • Она оперирует командами.
  • Команды упорядочены.
  • Информационный обмен между командами опосредован — через память (пресловутое «бутылочное горлышко»).

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

Предлагаемая мультиклеточная архитектура отличается как от первой, так и от второй архитектур.

  1. От фон-неймановской модели мультиклеточная архитектура отличается тем, что оперирует параграфами — группами информационно-замкнутых команд (операций) с непосредственным указанием информационных связей между операциями и, соответственно, снятием требования упорядоченного размещения описаний операций в программе. Эта неупорядоченность делает ненужными все те методы (суперскалярность, широкое командное слово, суперконвейер, предсказание переходов и т. п.), которые значительно усложняли процессы проектирования традиционного фон-неймановского процессора и инструментальных программных средств и увеличивали их стоимость.
  2. От известных не фон-неймановских архитектур она отличается использованием традиционных императивных языков программирования, последовательным способом выборки команд, использованием для указания информационных связей не адресов команд, а значений динамически формируемых тегов, а также механизмом исполнения команд: не только по «готовности данных», но и по «готовности потребителей ее результата».
  3. Система команд клетки основана на промежуточном представлении компилируемой программы после синтаксического анализа (триадах) и фактически является аппаратной реализацией входного языка программирования.
  4. Неупорядоченность триад обеспечивает, при необходимости, получение после каждой компиляции индивидуального объектного кода для каждого процессора. Это, а также замкнутость подмножеств триад, резко ограничивает возможности незаметного и несанкционированного вмешательства извне в работу системного программного обеспечения. Индивидуальность системного кода и использование непривилегированным пользователем для программирования только языка высокого уровня позволяют создать новый и эффективный инструментарий для борьбы с вирусами.
  5. Триады обеспечивают возможность одновременного чтения и исполнения нескольких команд без анализа их очередности выполнения и информационной связности, то есть обеспечивают «естественную» реализацию параллелизма. «Естественность» изначально обусловлена видом и механизмами исполнения команд. В мультиклеточном процессоре нет аппаратных средств, обеспечивающих выявление информационных связей между выбранными операциями (командами) и распределение их по функциональным устройствам, то есть нет динамического распараллеливания. Нет и статического распараллеливания, так как программа в виде триад хотя и описывает информационные связи, но имеет линейную форму и не содержит каких-либо указаний, что и как можно выполнять параллельно.
  6. Полносвязная интеллектуальная коммутационная среда, работающая в режиме «широковещательной» рассылки, не вносит каких-либо топологических ограничений в межклеточный обмен данными и, следовательно, обеспечивает эффективную реализацию любого класса задач (универсальность архитектуры), а также эффективное масштабирование процессора. При увеличении количества клеток и наличии потенциального параллелизма алгоритма рост производительности процессора практически равен увеличению количества клеток.
  7. Откомпилированная программа может быть выполнена на любом количестве клеток. При этом возможно динамическое изменение их количества, что обеспечивает реализацию методологии постепенной деградации процессора при отказах его клеток. Процессор может перестраиваться и быть работоспособным до тех пор, пока исправна хотя бы одна клетка и коммутационная среда. Подобная независимость кода от используемых ресурсов создает также основу решения проблем непрерывной самоадаптации процессора к потоку задач и его самовосстановления после сбоев или после подключения новых ресурсов.
  8. Асинхронная и децентрализованная организация мультиклеточного процессора, как на системном уровне — между клетками (при реализации параллелизма), так и на внутриклеточном уровне — между блоками клетки (при реализации команд), дополнительно обеспечивает:
  • Минимизацию номенклатуры и сложности объектов проектирования.
  • Уменьшение площади кристалла, так как объем оборудования при децентрализованном управлении меньше, чем при централизованном.
  • Увеличение производительности и сокращение энергопотребления в несколько раз, так как позволяет реализовать эффективный вычислительный процесс.
  • При реализации, в перспективе, на одном кристалле десятков и сотен клеток — использование индивидуальной системы синхронизации для каждой клетки.

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

Описание структуры мультиклеточного процессора

Структурная схема процессора приведена на рисунке. Ядро процессора состоит из нескольких клеток — простейших процессорных блоков (PU(0)…PU(n_pu–1)), объединенных интеллектуальной коммутационной средой и работающих как единое целое. PM — шина памяти программ, DM — шина памяти данных, I/O — шина ввода/вывода, Exc — шина связи с контроллером прерываний и обработчиком исключительных ситуаций.

Структурная схема процессора

Результаты выполнения операции каждой клеткой рассылаются всем клеткам сразу, таким образом, не требуется адресации отправки результатов вычислений. Отбор требуемых результатов вычислений любой из клеток из данного коммутационного поля производится всеми клетками в соответствии с алгоритмами их работы. То есть коммутационная среда полносвязная — по принципу «каждый с каждым». Причем связи все однонаправленные и нет задержки на организацию «типовых» протоколов связи, по принципу: «Сейчас отправлю, подтверди готовность – готов – отправляю» или задержки на организацию ожидания результатов предыдущих либо параллельных вычислений соседних вычислительных модулей (ядер).

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

Текущее состояние разработки

На данный момент завершены НИОКР по созданию двух моделей мультиклеточного процессорного ядра. Первое ориентировано на достижение максимальной производительности, второе — на предельно низкое энергопотребление. Для этого:

  • разработаны и отработаны на программных моделях RTL-описания процессорных ядер на 4, 8 и 16 клеток;
  • проведена отработка на FPGА-модели (Virtex-2) 4-клеточного высокопроизводительного процессорного ядра и выполнен его синтез для техпроцесса 0,18 мкм, V = 1,8 В;
  • проведена отработка на FPGА-модели (Spartan-6) 4-клеточного процессорного ядра с низким энергопотреблением и выполнен его синтез для техпроцесса 0,18 мкм, V = 1,8 В;
  • по результатам синтеза получены оценочные характеристики по производительности и энергопотреблению;
  • завершена отработка на FPGА-модели (Spartan-6) первой модели мультиклеточного процессора с низким энергопотреблением.

Процессор включает 4-клеточное ядро MCc0402100000 со сверхнизким энергопотреблением. Тип данных — с фиксированной запятой; разрядность — 16/32 бита; объем ОЗУ — 32К×16; объем ПЗУ — 4×4К×32. Частота — 75 МГц, производительность (16/32) — 600/300 MIPS на FPGA Spartan-6. В состав периферийных устройств входят: UART (асинхронный интерфейс приема-передачи); I2C (последовательная шина данных); SPI (последовательный периферийный интерфейс); PWM (широтно-импульсный генератор); RTC (часы реального времени). Системная шина AMBA (Specification 2.0) состоит из высокопроизводительной шины AHB (Advanced High-Performans Bus) и шины периферии APB (Advanced Periferal Bus).

В состав комплекса программно-инстру-ментальных средств входят: Си-компилятор; ассемблер; загрузчик; отладчик на базе программной модели процессора.

В качестве аппаратных отладочных средств используются стандартные отладочные платы Xilinx. Загрузчик — последовательный порт UART.

Количественные характеристики

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

Например, задача БПФ, несмотря на ее кажущуюся параллельность, распараллеливается не просто. TI С647, который имеет три таких ядра, как у процессора TI С64хх-С, БПФ решает всего в 1,5 раза быстрее по сравнению с одиночным.

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

Во-первых, внеочередным исполнением команд. Как известно, внеочередное исполнение команд дает рост быстродействия в 1,5–1,8 раза [11].

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

Параллельность и асинхронность работы блоков процессорного элемента (клетки) и коммутатора обеспечивают возможность практически пропорционального роста производительности мультиклеточного процессора при увеличении количества клеток. Так, выполнение CFFT-256 (стандартный тест выполнения БПФ на 256 коэффициентов) 8-клеточным процессором составило 639 тактов (рост в 1,87 раза по сравнению с 4-клеточным процессором), а 16-клеточным — 338 тактов (рост в 3,5 раза). Отличие в быстродействии (от теоретических значений) объясняется наличием постоянной составляющей на организацию циклов.

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

Данные, полученные для мультиклеточного процессора, сравнивались с высокопроизводительными процессорами и процессорами со сверхнизким потреблением энергии компании Texas Instruments. Результаты сведены в таблицы 1 и 2.

Таблица 1. Производительность (для высокопроизводительного процессорного ядра)

Ядро/ процессор MCc-1.xx-4 MCc-1.xx-8 MCc-1.xx-16 TI С64хх-С* TMS320C647x**
Количество операций, выбираемых и исполняемых
за один такт
4 8 16 8 24 (3×8)
CFFT-256 (такты) 1192 (radix-2) 639 (radix-2) 338 (radix-2) 1246 (radix-4) 806 (radix-4)
Примечания.
* Одноядерное процессорное ядро. Ядро типа C64xx имеет VLIW архитектуру. Командное слово содержит 8 полей для задания 8 операций, которые могут исполняться параллельно [12].
** Процессор содержит три ядра типа C64x [13]

Таблица 2. Энергопотребление (для процессорного ядра с низким энергопотреблением)

Характеристики MCc0402100000 TMS320
Результат синтеза Расчетное значение* Прогноз** VC5504***
Топологическая норма, мм 0,18 0,13 0,13 0,09
Напряжение, В 1,8 1,2 1,2 1,05
Энергопотребление на задаче CFFT-256:
мкВт/МГц 315,9 73,1 21,84
мкВт/MIPS 78,9 18,3 5,46
Энергопотребление на смеси 75%DMAC+25%ADD (Typical Sine Wave Data Switching):
мкВт/МГц 227,4 52,6 15,76 150
мкВт/MIPS 56,8 13,1 3,92 75
Примечания.
* Расчетное значение учитывает только уменьшение топологической нормы и напряжения питания.
** Прогноз учитывает уменьшение энергопотребления на 60% после оптимизации RTL-кода (полномасштабное введение следующих методов сокращения энергопотребления: clock gating, operand isolation for functional unit, operand isolation for multiplexers, latching of register addresses instructional decoder [14] и использование при синтезе библиотек со сверхнизким энергопотреблением.
*** Процессор TMS320 VC5504 был анонсирован в 2009 г. как процессор со сверхнизким энергопотреблением [15]. Данные по энергопотреблению приведены для этого процессорного ядра.

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

  • При равном количестве команд, параллельно исполняемых за один такт, быстродействие мультиклеточного процессора по сравнению с процессорами, например имеющими VLIW-архитектуру, выше почти в 2–4 раза.
  • Удельное энергопотребление мультиклеточного процессора с низким энергопотреблением в 10–15 раз меньше, чем энергопотребление подобных (с низким энергопотреблением) современных микропроцессоров с традиционной фон-неймановской архитектурой.

Что дальше?

В настоящее время ОАО «Мультиклет» планирует производство 16-клеточного высокопроизводительного 32-разрядного процессора с плавающей запятой в FPGA-варианте, обладающего следующими параметрами:

  • Тактовая частота: 200 МГц.
  • Производительность: 3,2 GFlops.
  • Быстродействие внутренней шины: 25,6 Гбит/с.
  • Возможный набор интерфейсов и устройств: UART, SPI, I2C, PCI-express, PWM, RTC.

Прогнозируемое энергопотребление для топологической нормы 0,09 мкм — 18,82 мкВт/MIPS.

При переходе на ASIC предполагается увеличение в 5–6 раз частоты и, соответственно, производительности процессора и быстродействия шины.

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

Заключение

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

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

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

Литература

  1. http://ru.wikipedia.org/wiki/Мультиклет
  2. Патент № 2179333 RU «Синергическая вычислительная система».
  3. Патент № 2198422 RU «Асинхронная синергическая вычислительная система».
  4. http://itrs.net/Links/2005ITRS/Sys Drivers2005.pdf
  5. http://www.russianelectronics.ru/developer-r/news/company/2115/doc/52935/
  6. Цилькер Б. Я., Орлов С. А. Организация ЭВМ и систем. СПб.: Питер, 2004.
  7. Классификации архитектур вычислительных систем — www.parallel.ru
  8. Затуливетер Ю. С., Фищенко Е. А. Многоядерное будущее многопроцессорной архитектуры ПС-2000 // Труды III Международной научной конференции «Параллельные вычисления и задачи управления». Москва, 2–4 октября 2006.
  9. Стрельцов Н. В. Мультиклеточные процессоры (концепция, архитектура) // Материалы «УралАрхЛаб» — http://www.multiclet.com/index.php/ru/ our-projects
  10. Стрельцов Н. В. Мультиклеточные процессоры (реализация процессора MCP-1.1хх) // Материалы «УралАрхЛаб» — http://www.multiclet.com/index.php/ru/our-projects
  11. http://www.osp.ru/os/2000/04/177973/#top
  12. Buyer’s Guide to DSP Processors, 2001 Edition. Berkeley Design Technology, Inc. (BDTI).
  13. http://focus.ti.com/dsp/docs/dspplatformscontento.tsp? sectionId=2&familyId=1635&tabId=2432
  14. http://www.retarget.com/resources/pdfs/goossens-ip07.pdf
  15. http://focus.ti.com/lit/ds/symlink/tms320vc5504.pdf

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *