вторник, 10 сентября 2013 г.

Реконфигурируемые структуры

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

Позднее я стал изучать программируемые логические интегральные схемы (ПЛИС). На данный момент есть несколько процессоров общего назначения таких как MIPS, ARM, x86 реализованных на основе ПЛИС.
Примеры можно найти на http://opencores.org/.
Думаю что будущее вычислительных систем за динамически создаваемыми схемами внутри ПЛИС(FPGA). Под конкретную задачу - своя схема. Конфигурация в ПЛИС должна храниться в быстрой SRAM памяти для ускорения загрузки, кроме того, должна быть возможность в частичном обновлении схемы "на лету".

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

А в последнее время нашел несколько статей по этой теме. Видно что активно ведутся работы в этом направлении.