Разработан новый "умный" контроллер памяти с поддержкой DMA

 

Общая схема контроллера памяти.

Фото: maltsystem.com

 

Разработана и протестирована новая версия "умного" контроллера памяти. Теперь контроллер поддерживает блочные передачи данных – механизм, позволяющий копировать данные из одной области памяти в другую без участия процессорных ядер, обычно называется DMA. Использование данного механизма позволяет в несколько раз увеличить производительность в задачах с интенсивным обменом данными. В новом контроллере реализован базовый набор "настоящих" атомарных операций, например поддерживается атомарный инкремент.

 

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

 

Все перечисленные выше механизмы реализованы на аппаратном уровне, что обеспечивает максимальное быстродействие и энергоэффективность.

Конференция ISC'14

 

Лейпциг, Германия

Фото: maltsystem.com

22 - 26 июня в Германии в городе Лейпциге прошла конференция ISC 2014.

 

 

Подробнее...

Начато портирование архитектуры MALT на ПЛИС Xilinx Virtex7

 

 

Некоторое время назад мы завершили разработку 49-ядерного прототипа нашего процессора в ПЛИС и намерены двигаться дальше. В наших ближайших планах - увеличение количества ядер до 200 и выпуск новой модификации контролера памяти с поддержкой DMA и атомарных инкрементов.

В связи с расширением проекта мы запланировали переход на новое семейство ПЛИС Xilinx – Virtex 7. Скорее всего, для прототипирования будет использоваться плата с чипом XC7V585T: 1 954 560 логических ячеек, 28 620 кбит BRAM, 3 шины PCIe Gen 2.

Разрабатываемая архитектура получила название MALT

 




Разрабатываемая архитектура получила название. MALT - Manycore Architecture with Lightweight Threads, что в переводе означает многоядерная архитектура с поддержкой легких потоков, достаточно точно отражает суть проекта.

 

 

Подробнее...

Собран 49-ядерный процессор на ПЛИС Xilinx Virtex6 с поддержкой "легких потоков"

 

Платформа 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 года факультет ВМК МГУ совместно с НИВЦ МГУ и НОЦ «Суперкомпьютерные технологии» проводят занятия летней Суперкомпьютерной Академии.

 

Подробнее...

ISC 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. Данный принцип подразумевает разделение сети на домены с независимым контролем тактирования. Для передачи данных через границы тактовых доменов используются блоки двухпортовой памяти. С целью упрощения системы двухпортовой сделана локальная память вычислительных узлов.

На 10-ядерный прототип портировано ядро Minix3 и основные сервисы

 

 

 

Мы портировали на нашу процессорную систему ОС Minix3 и её основные сервисы. С переходом на Minix помимо многозадачности у нас появилась возможность работать с файловой системой и сетевыми интерфейсами. Кроме того, теперь у нас есть полноценная стандартная библиотека языка С (ранее использовалась её сокращённая версия).

 

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

 

Для справки: ОС Minix3 изначально разработана Эндрю Таненбаумом в образовательных целях, но впоследствии благодаря своей простоте и надёжности стала использоваться и в промышленных вычислительных системах.

Собран 10-ядерный процессор на ПЛИС Xilinx Virtex5 с тегированным контроллером общей памяти

 

 

Наконец-то! Нами собран и отлажен в ПЛИС первый 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.

Выбрано RISC ядро общего назначения

 

 

Для прототипирования многоядерных процессоров в ПЛИС мы искали ядро, удовлетворяющее таким требованиям как: открытая модифицируемая архитектура, 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.

Собрана команда специалистов для разработки 1000-ядерного процессора

 


Hello world! 

 

Нам кажется, что современные процессоры устроены "как-то не так", в них слишком много унаследованного, что тянется из тех далеких лет, когда нас и на свете не было. Мы считаем, что в процессоре должны быть сотни вычислительных ядер, что энергоэффективность важнее производительности, производительность должна достигаться за счет специализации вычислительных блоков и параллельной обработки. Мы хотим начать "с нуля" и через 10 лет стать разработчиком многоядерных процессоров мирового уровня.

 

У нашего проекта пока нет больших собственных средств, мы не так здорово, как бы хотелось, понимаем, что нас ждет, но у нас есть огромное желание работать и, как нам кажется, необходимая квалификация. Итак, мы начинаем работу над оригинальной микропроцессорной архитектурой с сотнями и тысячами вычислительных ядер. В ней все будет устроено так, как нужно! Сначала мы разработаем прототип на ПЛИС...

 

Следите за ходом проекта в наших новостях!