Организация микропроцессорных систем. Учебное пособие. Могнонов П.Б. - 92 стр.

UptoLike

Составители: 

к общей разделяемой памяти (рис.5.10,а) или к памяти всех остальных процессоров
(рис.5.10,б). Устройство управления рассылает на каждом такте различные команды всем
процессорам, каждый из которых производит обработку своих данных. Поэтому имеется
множественность, как данных, так и команд.
При увеличении количества взаимосвязей между потоками команд характер
алгоритмической структуры совершенно меняется, она превращается в параллельную
структуру общего вида (рис.5.9,б). Эта структура таит в себе наибольшие возможности для
организации параллельных вычислений и увеличения скорости обработки. Так как у этого
класса алгоритмов практически отсутствуют линейные участки, то возникает необходимость
явно (с помощью указателей) задавать отношения предшествования на множество
конструкций, что значительно усложняет представление программ. Это обусловлено тем, что
для инициализации вычислительной конструкции (команды) необходимо завершение
предшествующих команд. Управление порядком исполнения команд в этом случае
становится более сложным.
Существует три способа перехода к выполнению следующей команды по завершению
предыдущей, которые определяют программную организацию ЭВМ.
ЭВМ с логическипрограммным управлением используют принудительный способ
перехода к следующей команде. Этот способ характерен для традиционных фон-
неймановских машин. Каждая команда помимо операции и операндов содержит явное
(указывается адрес перехода) или неявное (к адресу текущей команды добавляется
константа) указание к выполнению следующей команды. Форматы таких команд описаны в
главе 1. Такой способ управления также получил название командного (или управление
потоком команд). Процессоры этого класса машин имеют запросный механизм вызова
операндов (вызов по ссылке). При использовании механизма вызова операнда по ссылке для
передачи операндов между командами используется общая область памяти (возможно,
отдельная ячейка). Результат R, порождаемая командой, помещается в область памяти по
адресу (А). Каждая из команд, которая использует этот операнд, должна сделать запрос по
адресу (А) к общей памяти и получить из нее операнд R. Таким образом, передача операндов
между командами осуществляется путем взаимных ссылок (А) к одной общей памяти.
Механизм ссылок прост в реализации, но является постоянным источником ошибок при
программировании и ограничивает возможность параллельных вычислений из-за
конфликтов при одновременных запросах от разных команд к одной общей памяти.
В ЭВМ с управлением потоками данных выполнение команд осуществляется по мере
готовности участвующих в них данных. Алгоритм для машин потоков данных
представляется в виде графа, вершины которого соответствуют вычислительным
конструкциям (командам), а дугипотокам данных. Причем каждая дуга направлена от
вершины, в которой данные вырабатываются как результаты, к вершине, в которой эти
данные используются как операнды. На рис.5.11 приведен пример графа потоков данных
(ГПД), вычисляющий выражение U=(x*y)+(y*z).. Результат выполнения этой задачи будет
получен после срабатывания последней вершины ГПД.
*
x у
*
yz
+
U
Рис.5.11. Граф потоков данных
к общей разделяемой памяти (рис.5.10,а) или к памяти всех остальных процессоров
(рис.5.10,б). Устройство управления рассылает на каждом такте различные команды всем
процессорам, каждый из которых производит обработку своих данных. Поэтому имеется
множественность, как данных, так и команд.
       При увеличении количества взаимосвязей между потоками команд характер
алгоритмической структуры совершенно меняется, она превращается в параллельную
структуру общего вида (рис.5.9,б). Эта структура таит в себе наибольшие возможности для
организации параллельных вычислений и увеличения скорости обработки. Так как у этого
класса алгоритмов практически отсутствуют линейные участки, то возникает необходимость
явно (с помощью указателей) задавать отношения предшествования на множество
конструкций, что значительно усложняет представление программ. Это обусловлено тем, что
для инициализации вычислительной конструкции (команды) необходимо завершение
предшествующих команд. Управление порядком исполнения команд в этом случае
становится более сложным.
       Существует три способа перехода к выполнению следующей команды по завершению
предыдущей, которые определяют программную организацию ЭВМ.
       ЭВМ с логически–программным управлением используют принудительный способ
перехода к следующей команде. Этот способ характерен для традиционных фон-
неймановских машин. Каждая команда помимо операции и операндов содержит явное
(указывается адрес перехода) или неявное (к адресу текущей команды добавляется
константа) указание к выполнению следующей команды. Форматы таких команд описаны в
главе 1. Такой способ управления также получил название командного (или управление
потоком команд). Процессоры этого класса машин имеют запросный механизм вызова
операндов (вызов по ссылке). При использовании механизма вызова операнда по ссылке для
передачи операндов между командами используется общая область памяти (возможно,
отдельная ячейка). Результат R, порождаемая командой, помещается в область памяти по
адресу (А). Каждая из команд, которая использует этот операнд, должна сделать запрос по
адресу (А) к общей памяти и получить из нее операнд R. Таким образом, передача операндов
между командами осуществляется путем взаимных ссылок (А) к одной общей памяти.
Механизм ссылок прост в реализации, но является постоянным источником ошибок при
программировании и ограничивает возможность параллельных вычислений из-за
конфликтов при одновременных запросах от разных команд к одной общей памяти.
       В ЭВМ с управлением потоками данных выполнение команд осуществляется по мере
готовности участвующих в них данных. Алгоритм для машин потоков данных
представляется в виде графа, вершины которого соответствуют вычислительным
конструкциям (командам), а дуги – потокам данных. Причем каждая дуга направлена от
вершины, в которой данные вырабатываются как результаты, к вершине, в которой эти
данные используются как операнды. На рис.5.11 приведен пример графа потоков данных
(ГПД), вычисляющий выражение U=(x*y)+(y*z).. Результат выполнения этой задачи будет
получен после срабатывания последней вершины ГПД.
                                x         у   y         z

                                   *              *

                                          +
                                              U

                             Рис.5.11. Граф потоков данных