Вычислительные модели (системы) с управлением потоком данных (потоковые машины) и редукционные машины
Особенностью потоковых машин является то, что последовательность вычислений задается не последовательностью команд, что характерно для неймановской архитектуры, а по мере готовности данных для выполнения команд. Данные загружаются в операционное устройство, если оно свободно, и для определенной команды имеются все необходимые данные. Принципиальным отличием от неймановских машин является то, что команды выполняются не в порядке их следования, а по готовности операндов. Как только на входе операционного блока появляются данные, соответствующая команда блока захватывает эти данные и выполняется соответствующая операция. Машины, основанные на модели с потоком данных, называются потоковыми: - отсутствие побочного эффекта; - эффективная реализация параллельных вычислений.
Пример. a = (b+c)*(b-c). Для отображения хода процесса используются специальные «фишки». Потоковые принципы описываются с помощью графов и сетей Петри.
Такой подход используется в параллельных системах: однородных вычислительных средах (однотипные архитектуры процессоров (процессорных элементов ПЭ), настаиваемых на выполнение определенных программ; передача данных с использованием средств коммутации.
Рис. Принцип управления вычислительным процессом на основе потока данных используется в современных микропроцессорах, в частности, в суперскалярных архитектурах (Рис.). Сущность этих процессов состоит в следующем. Команда имеет код операции, может содержать два операнда, а также имеет два разряда (теги) для идентификации наличия (готовности) операндов к вычислениям. Команды хранятся в ячейках команд. Устройство управления при обнаружении двух единиц (двух готовых операндов) в одной из команд анализирует наличие среди операционных устройств (ОУ) свободное, которое по функциональным возможностям может реализовать операцию данной команды. При наличии такого устройства код операции и коды операндов передаются через операционный компилятор в соответствующее выбранное операционное устройство. Полученный результат записывается в память по адресу, указанному в команде.
Механизм редукционных машин основа н на принципе редукции, т.е. сокращения посредством перезаписи строк символов (формул) в программе или сокращения в графах. Запуск вычислений осуществляется при необходимости получения данных. Пример. Исходные данные: граф программы, находящийся в памяти. a = (b+c)*(b-c). В памяти: а) b)
c) d)
Нет побочного эффекта. Реализуется последовательность решения математических выражений. Это направление удобно для параллельной реализации.
|