Персональные компьютеры относятся к типу архитектуры по классификации флинна

Обновлено: 08.07.2024

Классификации Флинна (также называемый Flynn таксономия ) является подразделением компьютерных архитектур , который был опубликован в 1966 году Майкл Дж Флинн . Архитектуры подразделяются в зависимости от количества доступных потоков команд и потоков данных . Используемые четырехбуквенные сокращения SISD, SIMD, MISD и MIMD были получены из начальных букв описаний на английском языке, например, SISD означает « S ingle I nstruction, S ingle D ata».

оглавление

SISD (одна инструкция, отдельные данные)

Компьютеры SISD - это традиционные компьютеры с одноядерным процессором, которые выполняют свои задачи последовательно. Компьютеры SISD z. Б. Персональные компьютеры (ПК) или рабочие станции, построенные в соответствии с архитектурой фон Неймана или Гарварда . В первом случае для команд и данных используется одно и то же соединение с памятью, во втором - отдельно.

SIMD (одна инструкция, несколько данных)

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

Процессоры с поддержкой SIMD, например, хорошо подходят для обработки изображений, звука и видео данных, потому что в этих областях обрабатываемые данные обычно могут быть в высокой степени распараллелены; так z. B. В фрагменте видео операции для многих отдельных пикселей идентичны. Теоретически было бы оптимальным выполнить одну команду, которая могла бы применяться ко всем точкам. Кроме того, операции, требуемые в секторе мультимедиа и связи, часто представляют собой не простые отдельные операции, а скорее более обширные цепочки команд. Затухание изображения перед фоном - это, например, сложный процесс, состоящий из формирования маски с использованием XOR , подготовки фона с помощью AND и NOT и наложения частичных изображений с помощью OR . Это требование выполняется путем предоставления новых сложных команд. Так объединились з. Б. MMX команды PANDN инверсии и операция И вид х = у И (НЕ х ).

Многие современные архитектуры процессоров (такие как PowerPC и x86 ) теперь содержат расширения SIMD, то есть специальные дополнительные наборы инструкций, которые обрабатывают несколько похожих наборов данных одновременно с одним вызовом команды.

Однако следует различать команды, которые выполняют только аналогичные арифметические операции, и другие команды, которые выходят за рамки функций DSP (например, AltiVec в этом отношении намного мощнее, чем 3DNow ).

Современные процессоры позволяют использовать несколько блоков данных с одной командой:

разработчик Архитектура процессора Блок SIMD
ARM Ltd. ARM 32/64 НЕОН
IBM Питание / PowerPC AltiVec / VSX
Intel x86 / AMD 64 3DNow / SSE / AVX

Смотри тоже:

  • MMX , SSE , 3DNow , AltiVec , SSE2 , SSE3 , SSSE3 , SSE4 , SSE5 и AVX .
  • Полевой компьютер - несколько вычислительных блоков вычисляют одну и ту же операцию параллельно с разными данными
  • Векторный процессор - квазипараллельная обработка нескольких данных посредством конвейерной обработки

MISD (несколько инструкций, отдельные данные)

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

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

MIMD (несколько инструкций, несколько данных)

Архитектура мэйнфреймов или суперкомпьютеров . Компьютеры MIMD одновременно выполняют различные операции с разными типами потоков входных данных, при этом задачи распределяются по доступным ресурсам, обычно одним или несколькими процессорами в группе процессоров, даже во время выполнения . Каждый процессор имеет доступ к данным других процессоров.

Различают тесно связанные системы и слабосвязанные системы. Сильно связанные системы - это многопроцессорные системы , а слабосвязанные системы - это мультикомпьютерные системы.

Многопроцессорные системы совместно используют доступную память и, следовательно, являются системой с общей памятью. Эти системы с общей памятью можно подразделить на UMA (унифицированный доступ к памяти), NUMA (неоднородный доступ к памяти) и COMA (доступ только к кэш-памяти).

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

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

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

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

К технико-эксплуатационным характеристикам ЭВМ, определяющим их функциональные возможности, относят:

  • быстродействие;
  • разрядность;
  • формы представления чисел;
  • номенклатура и характеристики запоминающих устройств;
  • номенклатура и характеристики устройств ввода-вывода информации;
  • типы и характеристики внутренних и внешних интерфейсов;
  • наличие многопользовательских режимов и поддержка многопро-граммности;
  • типы и характеристики, используемых ОС;
  • система команд и их структура;
  • функциональные возможности программного обеспечения и его наличие;
  • программная совместимость с другими типами ЭВМ;
  • срок эксплуатации;
  • условия эксплуатации;
  • характеристики надежности;
  • состав и объем профилактических работ;
  • стоимостные характеристики;
  • совокупная стоимость владения.

Несмотря на сравнительно короткую историю современной вычислительной техники, до настоящего времени было предложено достаточно много подходов к систематизации всего многообразия средств вычислительной техники [40]. Работы в этом направлении продолжаются.

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

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

Используемый классификационный признак должен быть измеряемым и позволять относить классифицируемого объекта к единственному классу.

На практике эти требования часто удовлетворяются с допущениями. Примером служат большинство применяемых классификаций ЭВМ и вычислительных систем.

Для классификации компьютеров использовались следующие классификационные признаки:

  • принцип действия;
  • используемая элементная база;
  • назначение;
  • размеры и вычислительная мощность;
  • особенности архитектуры.
  1. По принципу действия вычислительные машины делятся на цифровые, аналоговые и гибридные.

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

По этому признаку вычислительные машины можно разделить на три группы: специализированные, универсальные и проблемно-ориентированные.

Универсальные ЭВМ позволяют решать задачи различных классов: математических, инженерно-технических, экономических, информационных и др.

Проблемно-ориентированные ЭВМ предназначены для решения круга задач более узкого: управление технологическими процессами; выполнение расчетов по сравнительно несложным алгоритмам; регистрация, накопление и обработка не очень больших объемов небольших данных. Они имеют более скромные по сравнению с универсальными ЭВМ программные и аппаратные ресурсы. Примером проблемно-ориентированным вычислительных систем могут служить и различные управляющие вычислительные комплексы. Специализированные вычислительные машины предназначены для решения узкого круга задач.

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

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

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

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

Классификация М. Флинна [38, 303] является одной из самых ранних и наиболее известных классификацией архитектур вычислительных систем. В основу классификации положено понятие потока. Поток - это последовательность, под которой понимается последовательность данных или команд, обрабатываемых процессором. Рассматривая число потоков данных и потоков команд, М. Флинн предложил рассматривать следующие классы архитектур: MIMD, SIMD, SISD , MISD .

Single Instruction Single Data [stream] - "один поток команд, один поток данных", архитектура SISD ( ОКОД ). Описание архитектуры компьютерной системы, подразумевающее исполнение одним процессором одного потока команд, который обрабатывает данные, хранящиеся в одной памяти (рис. 2.1а.).

Multiple Data stream processing - "один поток команд, много потоков данных", архитектура SIMD ( ОКМД ). Описание архитектуры параллельной компьютерной системы, подразумевающее исполнение одной текущей команды несколькими процессорами. Эта команда выбирается из памяти центральным контроллером SIMD-системы, но работает она над разными элементами данных (чаще всего - элементами массива). Для этого каждый процессор имеет ассоциированную с ним память, где хранятся массивы однородных данных. В эту категорию попадают, в частности, векторные процессоры . (рис. 2.1б.).

Multiple Instruction Single Data [stream] - "много потоков команд, один поток данных", архитектура MISD (МКОД). Одна из четырёх возможных архитектур параллельного компьютера в классификации М. Флинна. В этой архитектуре данные подаются на набор процессоров, каждый из которых исполняет свою программу их обработки. Подобная архитектура ещё никогда не была реализована (рис. 2.1в.).

Multiple Instructions - Multiple Data [stream] - "много потоков команд, много потоков данных", архитектура MIMD (МКМД). Одна из четырёх возможных архитектур параллельного компьютера. В этой архитектуре набор процессоров независимо выполняет различные наборы команд, обрабатывающих различные наборы данных. Системы в архитектуре MIMD делятся на системы с распределённой памятью (слабо связанные системы), к которым относятся кластеры, и системы с совместно используемой памятью ( shared-memory multiprocessors ). К последним относятся симметричные мультипроцессорные системы.

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

К классу SIMD относятся классические процессорные матрицы. В них множество процессорных элементов контролируется общим управляющим устройством. Все процессорные элементы одновременно получают от устройства одинаковые команды и обрабатывают свои локальные данные. Если рассматривать каждый элемент вектора как отдельный элемент потока данных, то к этому классу можно отнести и векторно-конвейерные компьютеры .

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

множественным скалярным потоком, то в этот класс могут быть включены векторно-конвейерные компьютеры .

Классификация Флинна широко используется и сегодня для начального описания вычислительных систем.

У этой классификации есть очевидные недостатки:

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

Несколько классификаций, предложенных позже, расширяют классификацию М. Флинна. Примером такой классификации может служить классификация Ванга и Бригса.

Классификация Ванга и Бриггса

Эта классификация по сути, является дополнением к классификации Флинна. В ней сохранены четыре базовых класса ( SISD , SIMD, MISD , MIMD), К. Ванг и Ф. Бриггс [42, 303] внесли следующие изменения.

В классе MIMD выделяются:

  • вычислительные системы со слабо связанными процессорами,
  • вычислительные системы с сильной связанными процессорами.

К первой группе относятся системы с распределенной памятью , ко второй - системы с общей памятью.

Класс SISD делится на два подкласса:

  • архитектуры, имеющие одно функциональное устройство;
  • архитектуры, в состав которых входит несколько функциональных устройств.

Класс SIMD с учетом способа обработки данных делится на два подкласса:

  • архитектуры с разрядно-последовательной обработкой данных;
  • архитектуры с пословно-последовательной обработкой данных.

Классификация Фенга

Т. Фенг предложил в основу классификации вычислительных систем положить две простые характеристики [42, 303]:

  • число бит в машинном слове, которые обрабатываются параллель но при выполнении машинных команд;
  • числу слов , одновременно обрабатываемых вычислительной системой. Используя эту терминологию работу любого компьютера можно интерпретировать как параллельную обработку n битовых слоев. В каждом слое независимо преобразуются бит. При такой интерпретации, вторую характеристику называют шириной битового слоя.

Иcпользуя предельные верхние значения числа бит n и числа слов m, вычислительную систему можно охарактеризовать двумя числами ( ). Величина определяет интегральную характеристику потенциала параллельности P архитектуры. Эта характеристика называется максимальной степенью параллелизма вычислительной системы: . По сути, это значение характеризует пиковую производительность. Рассматривая в качестве классификационного признака вычислительных систем способ обработки информации, заложенный в их архитектуру, введенные понятия позволяют разделить все вычислительные системы на следующие классы.

m

Эта классификация имеет ограничения. Они связаны со способом вычисления ширины битового слоя .

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

Данная классификация не позволяет понять специфику той или иной высокопроизводительной вычислительной системы.

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

Из интересных видов классификации можно отметить подход Базу, который строит классификацию по последовательности решений, принимаемых на этапе проектирования архитектуры. Согласно А. Базу (A. Basu), любую параллельную вычислительную систему можно однозначно описать последовательностью решений, принятых на этапе ее проектирования, а сам процесс проектирования представить в виде дерева [42].

В корне "дерева Базу" размещается вычислительная система, последующие ярусы дерева служат для описания иерархии принятия решений

при проектировании вычислительной системы. В итоге формируется описание проектируемой системы, представляемое значениями классификационных признаков в системе Базу.

Классификация, или таксономия, Флинна (англ. Flynn's taxonomy) — общая классификация архитектур ЭВМ оп признакам наличия параллелизма в потоках команд и данных. Предложил Майкл Флинн в 1966 году [1] , расширил в 1972 году [2] [3]

Одиночный поток команд
(Single Instruction)
Множественный поток команд
(Multiple Instruction)
Одиночная программа
(Single Program)
Множество программ
(Multiple Programs)
Одиночный поток данных
(Single Data)
SISD MISD
Множество потоков данных
(Multiple Data)
SIMD MIMD SPMD MPMD

Поскольку в таксономии в качестве основного критерия используют параллелизм, таксономию Флинна чаще всего упоминают в технической литературе [3] [4] при классификации параллельных вычислительных систем. В большинстве случаев параллельные вычислительные системы относятся к SIMD или MIMD-классам. При этом SISD-машина параллельной не считается, а существование ЭВМ с архитектурой MISD под большим вопросом, потому что даже главный пример (систолический массив) нельзя строго рассматривать как подходящий под определение данного типа.

Чтобы лучше понять, что такое классификация Флинна, что отличает SIMD и MIMD, а также SISD-тип от рассматриваемой в данной статье MISD-архитектуры, ниже будет представлена некоторая характеристика этих категорий.

Стоит также отметить, что наиболее популярные классы (SIMD и MIMD) делятся по способу работы с памятью с точки зрения программиста [5] [6] . Таким образом, выделяют системы с общей памятью (англ. shared memory, SM) и с распределённой (англ. distributed memory, DM).

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

    SISD (англ. Single Instruction stream over a Single Data stream, одиночный поток команд с одиночным потоком данных, ОКОД) — традиционный компьютер фон-Неймановской архитектуры с одним процессором, выполняющий последовательно одну команду за другой, работая с одним потоком данных. К этому типу относят конвейерные, суперскалярные и VLIW-процессоры.

SISD.jpg

SIMD.jpg

  • SM-SIMD (shared memory SIMD) — подкласс SIMD с общей памятью с точки зрения программиста. Сюда относятся векторные процессоры.
  • DM-SIMD (distributed memory SIMD) — подкласс SIMD с распределённой памятью с точки зрения программиста. Сюда относятся матричные процессоры — особый подвид с большим количеством процессоров.

MIMD.jpg

Классификация тех или иных ЭВМ зависит от точки зрения исследователя. Например, конвейерные машины могут быть отнесены к любому из четырёх основных типов [3] . По этой причине к MISD то относят систолические массивы, то оспаривают их принадлежность к данному классу. Также классификация зависит от уровня интеграции, но у MISD и до таких расхождений во взглядах не доходит.

Существует множество различных видов вычислительных систем и за более 50-летний период предложено множество их классификацией, но:

Наиболее известной классификацией архитектур ВС является предложенная в 1966 году М.Флинном и базирующейся на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором.

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

Выделают четыре типа архитектур ВС: SISD, MISD, SIMD, MIMD:

SISD (single instruction, single data) – системы с одиночным потоком команд и одиночным потоком данных. К этому классу относятся, прежде всего, классические последовательные машины (однопроцессорные ЭВМ), или иначе, машины фон-неймановского типа, например, PDP-11 или VAX 11/780. В такой ВС единственный процессор выполняет единственный поток команд и обрабатывает единственный поток данных, хранящихся в единственном блоке памяти.

SIMD (single instruction, multiple data) – системы с одиночным потоком команд и множественным потоком данных. В такой ВС имеется несколько одинаковых процессоров, которые выполняют команды из единственного потока команд. Каждый процессор связан со своим блоком памяти данных, и все процессоры параллельно обрабатывают свои данные по одному и тому же алгоритму. Особенностью этого класса являются векторные команды.

MISD (multiple instruction, single data) – системы с множественным потоком команд и одиночным потоком данных. В такой системе единственный поток данных проходит через несколько процессоров, каждый из которых выполняет свою последовательность команд. Такая структура до сих пор не реализована на практике, хотя принципиально напоминает систему с конвейерной обработкой, но в таков ВС на каждой рабочей позиции должна решается своя задача, а не этап обработки машинной команды.

MIMD (multiple instruction, multiple data) - системы с множественным потоком команд и множественным потоком данных. Этот класс предполагает, что в вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс, каждое из которых работает со своим потоком команд и данных. Основное отличие этих систем от многопроцессорных SIMD-машин состоит в том, что инструкции и данные связаны, потому что они относятся к одной и той же исполняемой задаче.

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

Читайте также: