Новости вычислителя будущего.

May 29, 2011 21:00

Готово ядрышко (corelet).

Это совсем небольшой вычислительный узел, который самостоятельно может только выполнить программу до 64-х байт длиной и завершиться - по флагу условия или безусловно. Он умеет посылать сообщения и блокировать выполнение, если сообщение не может быть послано.

К нему есть тест, позволяющий посмотреть на выполнение одной программы.

Теперь надо собрать большой ЦПУ из нескольких (начну с одного) ядрышек, к нему сортирующую ассоциативную память и подсистему обычной памяти, в которой будут храниться данные. Для подсистемы потребуется контроллер оной и сопроцессор, который умеет выполнять load/store, это сопроцессор 1 (loadstore). Для ассоциативной памяти с программами потребуется кэш программ. А для кэша потребуется сопроцессор 0 (proccontrol).

Вот оно и вырисовывается. ;)

Ну, и я повторю идею.

Я делаю машину динамического потока данных, с "улучшениями" в виде "сортировки по времени выполнения".

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

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

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

"Сортировка" позволяет сделать уменьшение параллелизма до приемлемых для реализации размеров. Это так называемый throttling. С его помощью предотвращают взрывное нарастание количества доступных одновременно вычислений.

"Сортировку" я назвал "улучшением" в кавычках потому, что я не знаю, насколько всё хорошо получится. В моём прототипе получалось неплохо, посмотрим, как и что будет на реальных задачах.

PS
Надо-таки сделать трансформацию в HDL-код. Попробую на неделе добраться.

моделирование аппаратуры, вычислитель будущего, Хаскель

Previous post Next post
Up