- •1. Анализ классической классификации Флинна.
- •Класс sisd
- •Класс simd
- •Класс misd
- •Класс mimd
- •Mimd устройство типа 1.
- •Mimd устройство типа 2.
- •Mimd устройства типа 3.
- •Резюме по типам mimd устройств.
- •2. Расширение классификации Флинна.
- •Классы sisd-l и misd-l
- •Класс simd-l
- •Класс sisd-h
- •Класс simd-h
- •3. Дополнительные терминальные классы классификации Флинна.
- •Классы sind-h и mind-h
- •Классы sind-e и mind-e
- •Классы sind-l и mind-l
- •Классы устройств без потоков команд.
- •Заключение.
Mimd устройство типа 1.
|
Рис.1.6. MIMD устройство типа 1 |
Mimd устройство типа 2.
|
Рис.1.7. MIMD устройство типа 2 |
Более внимательный взгляд позволяет убедиться, что данное устройство дает на выходе декартово произведение 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 устройств.
Таким образом, в классе есть устройства двух типов:
Сохраняющие количество входных потоков данных (то, что упоминалось как тип (0) – это наиболее распространенный тип MIMD устройств.
Увеличивающие количество потоков данных в M раз, т.е. создающие декартово произведение входных потоков данных и потоков инструкций.
На первый взгляд, кажется, что MIMD устройства типа (B) будут создавать лавинообразно нарастающие потоки данных, для их обработки потребуется непомерно много элементов и реализация таких устройств невозможна, однако в реальных системах, во-первых, потоки данных могут иметь небольшую длину, а во-вторых, многие потоки данных можно приостановить до момента освобождения обрабатывающих ресурсов.
2. Расширение классификации Флинна.
Рассматривая классы с множеством потоков команд (SIMD и MIMD), мы видели, что эти классы содержат разные по типу устройства (типы A и типы B). Устройства типа A сохраняли количество потоков данных (сколько на входе, столько же и на выходе), а устройства типа B увеличивали количество выходных потоков данных, таким образом, к базовой таблице Флинна напрашивается еще одно измерение, связанное с изменением количества потоков данных.
Естественным образом возникает вопрос: существует ли класс устройств, у которых количество выходных потоков информации меньше, чем количество входных потоков информации? – Конечно, существует! Например, устройства, осуществляющие:
разнообразные свёртки векторов, скажем скалярное произведение векторов;
свёртки тензоров, при этом тензор может превратиться в вектор или скаляр;
свёртки списков, переводящие структуры данных к единственному атомарному значению при помощи заданной функции;
секционная свёртка, к ней может относиться подсчет контрольных сумм или CRC-кода (типа CRC32).
Таким образом, добавляя к таблице Флинна еще одно измерение, связанное с изменением количества потоков данных, можно отметить на нем три градации:
Nin<Nout – увеличение числа потоков данных,
Nin=Nout – сохранение числа потоков данных,
Nin>Nout – уменьшение числа потоков данных,
где Nin – количество входных потоков данных, а Nout– количество выходных потоков данных.
Таким образом, классическая классификация Флинна является одним из трех слоев более общей, трехмерной таблицы. В этом слое Nin=Nout, а два дополнительных слоя даны на рис.2.1. Для указания индекса по новой оси будем добавлять расширение “L” – уменьшение числа потоков данных, “H” – увеличение числа потоков данных, расширение “E” – сохранение числа потоков данных, соответствует классическому слою.
|
Одиночный поток команд |
Множество потоков команд |
|
Одиночный поток команд |
Множество потоков команд |
Одиночный поток данных |
SISD-L |
MISD-L |
|
SISD-H |
MISD-H |
Множество потоков данных |
SIMD-L |
MIMD-L |
|
SIMD-H |
MIMD-H |
|
Nin>Nout – уменьшение числа потоков данных |
|
Nin<Nout – увеличение числа потоков данных |
||
Рис.2.1. Дополнительные слои классификации Флинна
Можно отобразить получившуюся трехмерную таблицу и по слоям потоков команд (рис.2.2): первый слой – одиночный поток команд, а второй слой – множество потоков команд.
|
Одиночный поток данных |
Множество потоков данных |
|
Nin>Nout – уменьшение числа потоков данных |
SISD-L |
SIMD-L |
Одиночный поток команд |
Nin=Nout – сохранение числа потоков данных |
SISD-E Классический SISD |
SIMD-E Классический SIMD |
|
Nin<Nout – увеличение числа потоков данных |
SISD-H |
SIMD-H |
|
|
|
|
|
Nin>Nout – уменьшение числа потоков данных |
MISD-L |
MIMD-L |
Множество потоков команд |
Nin=Nout – сохранение числа потоков данных |
MISD-E |
MIMD-E Классический MIMD |
|
Nin<Nout – увеличение числа потоков данных |
MISD-H |
MIMD-H |
Рис.2.2. Расширенная классификация Флинна
В этих таблицах зеленым отмечены классические классы Флинна, при этом пустой у Флинна класс MISD-E отмечен бирюзовым.
