Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шкулев Г.doc
Скачиваний:
40
Добавлен:
01.04.2015
Размер:
465.92 Кб
Скачать

Вычислительные Системы

Прямая соединительная линия 81

Однопроцессорные

Многопроцессорные

Многомашинные

Прямая соединительная линия 76Прямая соединительная линия 77Прямая соединительная линия 78

Прямая соединительная линия 75

Прямая соединительная линия 74

SISD

SIMD

MISD

MIMD

Прямая соединительная линия 68Прямая соединительная линия 69Прямая соединительная линия 70Прямая соединительная линия 71Прямая соединительная линия 72Прямая соединительная линия 73

Прямая соединительная линия 61Прямая соединительная линия 62Прямая соединительная линия 63

CISC

RISC

Суперскаляр

Матричный

Векторный

Прямая соединительная линия 57Прямая соединительная линия 58Прямая соединительная линия 60

МПВС

ММВС

Прямая соединительная линия 52Прямая соединительная линия 53

Прямая соединительная линия 50Прямая соединительная линия 51

Сильно связанные

Слабо связанные

Прямая соединительная линия 48

Прямая соединительная линия 47

Системы с массовым

параллелизмом

MSIMD

Рис. 12.1 Классификация ВС

Параллелизм вычислительных процессов

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

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

Известный специалист по архитектуре компьютеров М.Флин (M.Flynn) обратил внимание на то, что существует всего две причины, порождающие вычислительный параллелизм - независимость потоков команд, одновременно существующих в системе, инесвязанность данных, обрабатываемых в одном потоке команд. Если первая основа

параллелизма вычислительного процесса достаточно известна (это "обычное" мультипроцессирование) и не требует особых комментариев, то на параллелизме данных следует остановиться более подробно, поскольку в большинстве случаев он существует скрыто от программистов и используется ограниченным кругом профессионалов. Простейшим примером параллелизма данных является последовательность из двух команд:

A=B+C;

D=E*F;

Если строго следовать принципу фон Неймана, то вторая операция может быть запущена на исполнение только после завершения первой операции. Однако очевидно, что порядок выполнения этих команд не имеет никакого значения - операнды A, B и C первой команды никак не связаны с операндами D, E и F второй команды. Другими словами, обе операции являются параллельными именно потому, что операнды этих команд не связаны между собой. Можно привести множество примеров последовательности из трех и более команд с несвязанными данными, которые приведут к однозначному выводу: практически любая программа содержит группы операций над параллельными данными.

Итак - параллелизм верхнего уровня достигается за счет множества

независимых командных потоков и реализуется с помощью

многопроцессорной архитектуры;

- параллелизм нижнего уровня обязан своим существованием наличием

несвязанных потоков данных и реализуется за счет конвейерной

обработки различных фаз операций.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]