Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конюховавсит.doc
Скачиваний:
112
Добавлен:
28.03.2015
Размер:
1.56 Mб
Скачать

10.2 Классификация систем параллельной обработки данных

10.2.1 Классификация Флинна

Существуют различные подходы к классификации систем параллельной обработки данных /1 – 3, 7/. Одной из первых является классификация Майкла Флинна (1966 год), которая основана на двух характеристиках организации процесса обработке: потоке команд и потоке данных. Одиночность и множественность потоков определяется максимально возможным числом команд (или данных), одновременно находящихся на одинаковых стадиях исполнения. В соответствии с классификацией Флинна, можно выделить 4 класса архитектур:

1) Одиночный поток команд, одиночный поток данных (ОКОД) или Single Instruction Stream Single Data Stream (SISD) (Рисунок 10.1).

Сюда относятся ВС с одним процессором, т.е., классические фон-неймановские ВМ, в которых имеется только один поток команд, команды обрабатываются последовательно, и каждая команда инициирует одну операцию с одним потоком данных. То, что для увеличения скорости обработка команд и скорости выполнения арифметических операций может применяться конвейерная обработка, значения не имеет.

Рисунок 10.1 – Архитектура класса ОКОД

2) Одиночный поток команд, множественный поток данных (ОКМД) или Single Instruction Stream Multiple Data Stream (SIMD) (Рисунок 10.2).

Сюда относятся векторные ВС, в которых одинаковые преобразования выполняются над различными элементами данных (компонентами вектора). Представителями этого класса считаются матрицы процессоров, где единое УУ контролирует множество процессорных элементов. Все процессорные элементы получают от УУ одинаковую команду и выполняют её над своими локальными данными.

Рисунок 10.2 – Архитектура класса ОКМД

3) Множественный поток команд, одиночный поток данных (МКОД) или Multiple Instruction Stream Single Data Stream (MISD) (Рисунок 10.3).

Рисунок 10.3 – Архитектура класса МКОД

Из определения следует, что в таких ВС присутствует множество процессоров, обрабатывающих один и тот же поток данных. По поводу данного класса ВС нет однозначного мнения. Согласно одним источникам, например, /3/, до сих пор специалисты в области архитектуры ВМ не сумели представить убедительный пример такой реально существующей ВС, и этот класс считается пустым. В соответствии с другими источниками /2, 21/, сюда относятся конвейерные ВС, в которых данные обрабатываются за несколько стадий различными операционными устройствами под управлением соответствующих команд.

4) Множественный поток команд, множественный поток данных (МКМД) или Multiple Instructions Stream Multiple Data Stream (MIMD) (Рисунок 10.4).

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

10.2.2 Классификация Головкина

Приведённая выше классификация Флинна порождает неоднозначность группировки существующих архитектур (многообразие систем в классе МКМД, векторный поток можно рассматривать как одиночный и как множественный и др.). Наиболее полной является классификация, предложенная профессором Головкиным Б.А. Она опирается на основные принципы организации обработки данных с учётом многоуровневости их обработки. Выделяют 4 уровня обработки: уровень программ, уровень команд, уровень данных (регистровых передач), уровень слов.

Рисунок 10.4 – Архитектура класса МКМД

Программам как единицам обработки в качестве средств обработки выступают вычислительные машины и сети. Параллельно могут выполняться части программ (команды), которые выполняют процессоры. На уровне команд параллельно могут выполняться отдельные фазы (выборка команды, декодирование, выборка операндов, выполнение операции). Их выполняют функциональные блоки процессора. Данным, обрабатываемым на уровне регистровых передач, соответствуют АЛУ. Параллельно могут обрабатываться компоненты векторов, матриц и других структур данных (слова). Выполняют преобразования функциональные блоки АЛУ. Параллельно могут обрабатываться разряды слов функциональным преобразователями разрядов в составе операционных блоков АЛУ.

На каждом уровне обработки возможны 4 варианта организации процессов: последовательная, конвейерная, параллельная (многоэлементная), параллельно-конвейерная. Тогда всего возможно 44 = 256 классов обработки и соответствующих им типов архитектур.