Разработана оригинальная внутрикристальная шина для объединения сотен вычислительных ядер


 

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

 

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

 

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