Расширение классификации Флинна



Рассматривая классы с множеством потоков команд (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 отмечен бирюзовым.

Классы SISD-L и MISD-L

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

Однако, более глубокий анализ показывает, что существуют устройства, в которые входит один или несколько потоков информации, и не выходит ни одного потока информации, но есть некий терминальный результат, вот несколько вариантов:

· Устройство типа «закрытая копилка». Результат будет известен только в конце, когда «копилка» будет «разбита».

· Объекты квантовой физики, где попытка измерить накопленное состояние приводит к изменению (или разрушению) этого состояния.

· Объекты типа «радиоуправляемая бомба», которые ожидают во входных информационных потоках заданную кодовую последовательность, если есть результат работы такого объекта, то он однократен.

Таким образом, даже в этом классе вычислительных устройств есть реальные объекты, схемы которых даны на рис.2.3.А – класс SISD-L, а рис.2.3.В – класс MISD-L. На этих рисунках «ТПЭ» - это терминальный процессорный элемент.

A) B)

Рис. 2.3. Схемы построения терминальных классов: A) SISD-L, B) MISD-L .

Как уже отмечалось, конвейерная последовательность процессорных элементов топологически эквивалентна одному элементу, таким образом, класс MISD-L, по сути, эквивалентен классу SISD-L.

Класс SIMD-L

Рис.2.4. Класс SIMD-L

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

 

Класс SISD-H

Рис.2.5. Класс SISD-H

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

· Расщепление FP-чисел на мантиссу и порядок;

· Вычисление значений функций имеющих точки бесконечного разрыва, в виде двух чисел – числителя и знаменателя (например, tg(x) или ctg(x));

· Вычисление функций имеющих пару результатов по определению (например, целочисленное деление дает частное и остаток).

Поскольку задач расщепления данных не так уж и много, то таких, расщепляющих систем тоже не много.

Класс SIMD-H

Рис.2.6. Варианты класса SIMD-H

Устройства этого класса состоят из параллельно работа­ющих устройств класса SISD-H, которые расщепляют входные потоки данных.

Но чаще встречается вариант, где наряду с SISD-H, есть не расщепляющие устройства класса SISD, выпо­лняющие обычные скалярные операции. Такая архитектура более гибкая и позволяет параллельно выполнять операции разных типов.

Класс MISD-E

Устройства этого класса рассматривались ранее, как схема (A) класса MISD.

Класс MISD-H

Устройства этого класса рассматривались ранее, как схема (B) класса MISD.


Дата добавления: 2018-04-04; просмотров: 1493; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!