Разработан ассемблер и эмулятор для архитектуры программируемого ускорителя в составе MALT
- Информация о материале
- Опубликовано: 25.02.2016, 14:19
Разработан ассемблер, поддерживающий алгебраический синтаксис, сходный с используемым в языке Си.
Разработан ассемблер, поддерживающий алгебраический синтаксис, сходный с используемым в языке Си.
Лаборатория интеллектуальной электроники Фото: maltsystem.com |
Команда проекта MALT растет. Мы переехали в новую лабораторию. Новые компьютеры, современный интерьер, кофемашина, в общем все, что нужно для плодотворной работы. В команде появляются новые разработчики: специалисты по VHDL и системному программированию. Нас уже двенадцать! И это только сотрудники, работающие на полную ставку, не считая совместителей и наших коллег, работающих удаленно и/или сдельно. Текущий уровень инвестиций позволяет нарастить темп работ и охватить более широкий круг задач. Новые специалисты позволят больше сил уделять прикладному и системному ПО, в необходимом темпе вести работы по проектированию СБИС MALT-C первого поколения.
Фото: maltsystem.com |
Завершено проектирование процессорного элемента векторного ускорителя Леопард. Архитектура процессорных элементов выбиралась исходя из требований максимальной гибкости (с точки зрения программирования) при высокой производительности и энергоэффективности на целевых задачах. В итоге была выбрана архитектура на основе древовидного АЛУ.
Сравнение вариантов процессорных элементов на предмет соотношения "производительность-гибкость" Изображение: maltsystem.com
|
Начато проектирование MALT-процессоров с векторной и смешанной архитектурами.
Сергей Елизаров (справа) Фото: maltsystem.com |
8-9 июля 2015 года Проект принял участие в главной промышленной выставке России - ИННОПРОМ 2015 в рамках стенда Физического факультета МГУ имени М.В. Ломоносова на экспозиции госкорпорации Ростех.
Распределение ресурсов ПЛИС Xilinx Virtex 2000T Фото: maltsystem.com |
Производительность и энергоэффективность достигается с помощью специализации, простота программирования - с помощью универсальных конструкций. Мы попробовали объединить два эти подхода и разработали прототип на ПЛИС многоядерного процессора архитектуры MALT со специализированными ускорителями.
Схема 210-ядерного процессора. Изображение: maltsystem.com |
Недавно мы завершили сборку и отладку нового монстра - прототипа 210-ядерного процессора в ПЛИС Virtex7 2000T.
Сергей Елизаров Фото: maltsystem.com |
30 октября 2014 года в Шуваловском корпусе МГУ имени М.В.Ломоносова прошел юбилейный съезд ректоров России.
Общая схема контроллера памяти. Фото: maltsystem.com |
Разработана и протестирована новая версия "умного" контроллера памяти. Теперь контроллер поддерживает блочные передачи данных – механизм, позволяющий копировать данные из одной области памяти в другую без участия процессорных ядер, обычно называется DMA. Использование данного механизма позволяет в несколько раз увеличить производительность в задачах с интенсивным обменом данными. В новом контроллере реализован базовый набор "настоящих" атомарных операций, например поддерживается атомарный инкремент.
Новый контроллер памяти, так же как и его предыдущая версия, поддерживает механизм FE-битов. Данный механизм позволяет осуществлять синхронизацию доступа к памяти из различных потоков. В частности, контроллер позволяет приостанавливать выполнение потока в случае, если запрашиваемые данные ещё не получены, и практически мгновенно возобновлять его выполнение сразу после предоставления этих данных другим потоком.
Все перечисленные выше механизмы реализованы на аппаратном уровне, что обеспечивает максимальное быстродействие и энергоэффективность.
Лейпциг, Германия Фото: maltsystem.com |
22 - 26 июня в Германии в городе Лейпциге прошла конференция ISC 2014.
Некоторое время назад мы завершили разработку 49-ядерного прототипа нашего процессора в ПЛИС и намерены двигаться дальше. В наших ближайших планах - увеличение количества ядер до 200 и выпуск новой модификации контролера памяти с поддержкой DMA и атомарных инкрементов.
В связи с расширением проекта мы запланировали переход на новое семейство ПЛИС Xilinx – Virtex 7. Скорее всего, для прототипирования будет использоваться плата с чипом XC7V585T: 1 954 560 логических ячеек, 28 620 кбит BRAM, 3 шины PCIe Gen 2.
Разрабатываемая архитектура получила название. MALT - Manycore Architecture with Lightweight Threads, что в переводе означает многоядерная архитектура с поддержкой легких потоков, достаточно точно отражает суть проекта.
Платформа Rosta RSP-527 с двумя ПЛИС Xilinx Virtex 6 Фото: НПО Роста |
Важная веха в истории развития проекта. На это ушел год. На ПЛИС Xilinx Virtex6 реализован многопотоковый процессор, содержащий 49 RISC ядер. Полностью переработанная со времен 10-ядерного прототипа архитектура теперь обеспечивает возможность эффективной загрузки десятков и сотен простых вычислительных ядер без конфликтов и чрезмерных накладных расходов. Проект вырос и стал многочастотным. Частота работы процессорных RISC ядер - 100 МГц, частота внутренней пакетной шины - 200 МГц. Внешняя память - 125 МГц 16 MB ZBT SRAM. Система реализована на платформе Rosta RSP-527 с двумя ПЛИС Xilinx Virtex 6 с интерфейсом PCI-Express Gen 2.
С 24 июня по 6 июля 2013 года факультет ВМК МГУ совместно с НИВЦ МГУ и НОЦ «Суперкомпьютерные технологии» проводят занятия летней Суперкомпьютерной Академии.
16 по 20 июня в Германии в городе Лейпциге прошла конференция ISC 2013. ISC является старейшим и наиболее значимым событием, определяющим развитие высокопроизводительных вычислений в мире.
Схема коммутатора шины SPBUS |
Завершена разработка простой пакетной шины (Simple Packet Bus - SPBUS), которая позволяет обеспечить взаимодействие сотен различных устройств внутри кристалла. Шина SPBUS полностью написана на VHDL без использования закрытых лицензируемых IP блоков. Разработанная шина является исключительно компактной с точки зрения использования аппаратных ресурсов ПЛИС или СБИС, при этом обеспечивает задержки при передаче данных менее 50 тактов.
Хотя мы и называем SPBUS шиной, терминологически верно говорить "дерево коммутаторов". Каждый коммутатор SPBUS имеет по 3 входных и 3 выходных порта. Каждое устройство на кристалле или узел оснащено собственным коммутатором. Один входной порт и один выходной порт каждого коммутатора подключены к текущему узлу, остальные порты служат для обмена данными с коммутаторами, расположенными на соседних узлах.
Данные передаются по шине методом типа червоточина (wormhole). Суть этого метода заключается в том, что когда первая часть пакета не может быть передана дальше, посылающей стороне отправляется сигнал о том, что необходимо остановить передачу до тех пор, пока путь не освободится. Данный сигнал ограничивает посылку сообщений на определенное время. Такой тип управления называется управлением с обратным давлением. Данный подход позволяет минимизировать количество буферной памяти в коммутаторах.
Шина разработана с учётом принципа GALS – Globally Asynchronous Locally Synchronous. Данный принцип подразумевает разделение сети на домены с независимым контролем тактирования. Для передачи данных через границы тактовых доменов используются блоки двухпортовой памяти. С целью упрощения системы двухпортовой сделана локальная память вычислительных узлов.
На разрабатываемой платформе добавлена поддержка php. Без ложной скромности можем сказать, что это первый PHP-скрипт на Minix3, запущенный на не x86-платформе!
Мы портировали на нашу процессорную систему ОС Minix3 и её основные сервисы. С переходом на Minix помимо многозадачности у нас появилась возможность работать с файловой системой и сетевыми интерфейсами. Кроме того, теперь у нас есть полноценная стандартная библиотека языка С (ранее использовалась её сокращённая версия).
Следует отметить, что официально ОС Minix3 поддерживается только на x86-совместимых процессорах. Версии данной ОС для других архитектур встречаются редко и носят скорее экспериментальный характер. Поэтому для запуска данной ОС на нашей системе была проделана значительная работа.
Для справки: ОС Minix3 изначально разработана Эндрю Таненбаумом в образовательных целях, но впоследствии благодаря своей простоте и надёжности стала использоваться и в промышленных вычислительных системах.
Наконец-то! Нами собран и отлажен в ПЛИС первый 10-ядерный процессор.
Основные характеристики:
- Частота ядер - 50 MHz.
- Производительность на ядро, измеренная на тесте dhrystone, - 53 DMIPS.
- Объем локальной памяти данных - 8 кБайт.
- Локального кеша команд - 8 кБайт на ядро.
- Внутренняя шина шириной - 128 бит.
- Частота шины - 50 МГц.
Для макета процессора мы использовали плату ML505 Evaluation Platform на Xilinx Virtex-5 XC5VLX50T. Поддерживается 256 МБайт общей внешней DDR2 памяти и 100 Mbit Ethernet интерфейс. Проект занимает 76% доступных LUT и 90% BRAM.
Для прототипирования многоядерных процессоров в ПЛИС мы искали ядро, удовлетворяющее таким требованиям как: открытая модифицируемая архитектура, gcc совместимость, минимальный размер в ПЛИС, архитектура RISC 32-бит, отличная “раскладка” на ПЛИС Xilinx, производительность не менее 1 DMIPS/MHz.
Мы пересмотрели более десятка Soft-процессоров, в том числе Amber, OpenRISC, Plasma, YARI, LatticeMico32, Aquarius, RAMP Gold, LEON3, LEON2, aeMB, ZPU, MB-Lite, Secret-Blaze. Нами выбрана основа для построения RISC ядря общего назначения. Это MBLite.
Максимальная частота MBLite на Virtex5 составила 180 МГц, размер ядра 1100 6-выводных LUT, на dhrystone он показал 106 DMIPS / 100 МГц и отличную плотность упаковки без деградации производительности: до 20-ти ядер на XC5VLX50T.