Резюме по типам MIMD устройств
Анализ классической классификации Флинна.
Классификация Флинна (Flynn’s taxonomy – таксономия Флинна) – обобщенная классификация архитектур ЭВМ по признакам наличия параллелизма в потоках команд и данных. Была предложена Майклом Флинном в 1966 году и расширена в 1972 году. Классификация основана на естественной двухмерной таблице, в которой получаются четыре класса.
Одиночный поток команд | Множество потоков команд | |
Одиночный поток данных | SISD | MISD |
Множество потоков данных | SIMD | MIMD |
Рис.1.1. Классическая классификация Флинна
Класс SISD
Рис.1.2. Принцип класса SISD |
Архитектура SISD – это традиционный компьютер фон-неймановской архитектуры с одним процессором, который выполняет последовательно одну команду за другой, работая с одним потоком данных.
В данном классе не используется параллелизм ни данных, ни инструкций, следовательно, такая машина абсолютно не является параллельной.
Класс SIMD
Рис.1.3. Принцип класса SIMD |
Типичными представителями этого класса являются, во-первых, векторные процессоры, во-вторых, обычные современные процессоры, когда они работают в режиме выполнения команд векторных расширений, а в-третьих, особые подвиды многопроцессорных систем, такие как графические процессоры, либо матричные процессоры.
В вычислительных системах этого класса имеется множество процессоров, поэтому можно разделить такой класс на подклассы по типу взаимодействия с памятью. Этот класс делят на два подкласса:
|
|
· SM-SIMD (shared memory SIMD) – SIMD с общей памятью;
· DM-SIMD (distributed memory SIMD) – SIMD с распределенной памятью
Но организация памяти многопроцессорных систем – это обширная тема и будет рассмотрена отдельно.
Класс MISD
A) | B) |
Рис. 1.4. Два возможных принципа построения класса MISD: A) конвейерный, B) разветвляющийся |
Из определения следует, что в системе присутствует множество процессорных элементов обрабатывающих один и тот же поток данных. К сожалению, это определение не однозначно: во-первых, его можно понимать как конвейерную обработку данных (A), но тогда это не параллельная система, а последовательная, во-вторых, его можно понимать как параллельную обработку, превращающую один поток данных в несколько потоков данных (B).
Поскольку результирующие потоки данных должны снова направляться в пул данных, а оттуда на вычислительное устройство того же класса MISD, то схема (В) приводит к лавинообразному размножению потоков данных. Во многих источниках указано, что ни Флинн, ни другие специалисты в области архитектуры компьютеров, до сих пор не сумели представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе. Поэтому принято считать, что пока данный класс пуст.
|
|
Класс MIMD
Рис.1.5. Классический принцип построения класса MIMD |
Обычно к этому классу относят параллельные устройства, работающие по приведенной на рис.1.5 схеме, т.е. имеющие N входных потоков данных, N выходных потоков данных и поток из N потоков инструкций, каждый поток инструкций обрабатывает свой поток данных, т.е. по сути, это набор из N штук SISD устройств.
Сюда принято относить традиционные мультипроцессорные машины, многоядерные и многопоточные процессоры, а также компьютерные кластеры.
Однако из определения класса можно вывести и другие схемы, в которых количества потоков данных не равно количеству потоков инструкций, при этом может оказаться, что количество выходных потоков данных не равно количеству входных потоков данных. Если система имеет N входных потоков данных, а M потоков инструкций, то возможны следующие варианты типов:
1. MIMD устройство представляет собой N параллельных MISD устройств типа (А);
2. MIMD устройство представляет собой N параллельных MISD устройств типа (B);
3. MIMD устройство представляет собой M параллельных SIMD устройств;
|
|
4. MIMD устройство представляет собой матрицу (M´N) процессорных элементов, представляющей декартово произведение M потоков команд на N потоков данных.
Рассмотрим их подробнее, при этом будем называть типом 0 схему, приведенную в начале раздела на рис.1.5.
MIMD устройство типа 1.
Рис.1.6. MIMD устройство типа 1 |
Это устройство представляет собой N параллельных MISD устройств типа (А), но как уже было сказано, MISD устройств типа (А), по сути, является не параллельным, а последовательным, конвейерным, поэтому MIMD устройство типа 1, является параллельным по данным, но последовательным по командам, т.е. на самом деле оно является устройством класса SIMD и не должно рассматриваться в рамках класса MIMD.
MIMD устройство типа 2.
Рис.1.7. MIMD устройство типа 2 |
Поскольку MIMD устройство типа 2 представляет собой N параллельных MISD устройств типа (B), каждое из которых с M выходами, то ему присущи все особенности MISD устройств типа (B), в частности, количество выходных потоков данных в M раз больше количества входных потоков данных, т.е. количество выходных потоков данных равно (M´N).
Более внимательный взгляд позволяет убедиться, что данное устройство дает на выходе декартово произведение N входных потоков данных на M потоков инструкций, т.е. это устройство топологически и функционально эквивалентно MIMD устройству типа 4.
|
|
Таким образом, MIMD устройства типа 2 и типа 4 абсолютно эквивалентны.
MIMD устройства типа 3.
MIMD устройство типа 3, построенное в виде M параллельных SIMD устройств, каждое из которых с N входами и N выходами, приведено ниже на рисунке 1.8. Несложно убедиться, что это устройство дает на выходе декартово произведение N входных потоков данных на M потоков инструкций, т.е. топологически и функционально эквивалентно MIMD устройству типа 4, а, следовательно, и устройству типа 2.
Рис.1.8. MIMD устройство, построенное в виде M параллельных SIMD устройств
Резюме по типам MIMD устройств.
Таким образом, в классе есть устройства двух типов:
A) Сохраняющие количество входных потоков данных (то, что упоминалось как тип (0) – это наиболее распространенный тип MIMD устройств.
B) Увеличивающие количество потоков данных в M раз, т.е. создающие декартово произведение входных потоков данных и потоков инструкций.
На первый взгляд, кажется, что MIMD устройства типа (B) будут создавать лавинообразно нарастающие потоки данных, для их обработки потребуется непомерно много элементов и реализация таких устройств невозможна, однако в реальных системах, во-первых, потоки данных могут иметь небольшую длину, а во-вторых, многие потоки данных можно приостановить до момента освобождения обрабатывающих ресурсов.
Дата добавления: 2018-04-04; просмотров: 494; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!