Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Klassifikatsiya_Flina.doc
Скачиваний:
4
Добавлен:
28.06.2024
Размер:
236.54 Кб
Скачать

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 устройств.

Таким образом, в классе есть устройства двух типов:

  1. Сохраняющие количество входных потоков данных (то, что упоминалось как тип (0) – это наиболее распространенный тип MIMD устройств.

  2. Увеличивающие количество потоков данных в 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 отмечен бирюзовым.