11.4.4. Программирование и функциональные операции
В процессе решения задачи пользователь определяет приближенные уравнения для вычисления представляющей интерес функции и выбирает алгоритм для реализации уравнений. Направленный граф [35] составляется для алгоритма таким образом, чтобы обеспечить максимум параллелизма. Операции представляются в виде вершин, а соединения — как ребра или дуги. Направленный граф отображается на оптическую систему перекрестных переключателей: ребра — на состояния перекрестной системы, вершины — на доступные функциональные элементы. Это делается таким образом, чтобы удовлетворить временным ограничениям, и при этом эффективно использовать доступные ресурсы. Варианты потокового графа, предназначенные для реализации ряда цифровых и символьных вычислений с помощью предложенного процессора, обсуждаются в разд. 11.5, 11.6 и 11.7. Модифицированный вариант графа алгоритма вычислений «сопряженных градиентов» позволяет повысить эффективность работы обсуждаемого в данной главе процессора более 90% [36]. В настоящее время одной из наиболее важных задач является разработка программных средств для автоматического конструирования направленного графа с максимальной степенью параллелизма реализации алгоритма [37] и затем для успешной реализации его в конкретном процессоре. Это влечет за собой необходимость табличного описания состояний, включающих сети межсоединений, операций, которые должны
выполнять функциональные элементы, а также временного графика выполнения этих операций.
Пользователь вводит в процессор поток или потоки данных, и если «конвейер» был загружен, то результат появляется на выходах в каждом тактовом цикле. Каждый функциональный элемент будет при этом выполнять свою операцию за время следующего синхронизирующего импульса, а именно после того, как получит все необходимые логические или цифровые входные сигналы. При этом он будет автоматически передавать выходные сигналы на перекрестный переключатель для указания маршрута для следующей заданной операции.