Классификация параллельных вычислительных систем
Содержание |
[править] Классификация параллельных архитектур по Флинну
| Одиночный поток команд (Single Instruction) |
Множество потоков команд (Multiple Instruction) |
|
|---|---|---|
| Одиночный поток данных (Single Data) |
SISD (ОКОД) |
MISD (МКОД) |
| Множество потоков данных (Multiple Data) |
SIMD (ОКМД) |
MIMD (МКМД) |
Общая классификация архитектур ЭВМ по признакам наличия параллелизма в потоках команд и данных. Была предложена в 70-е годы Майклом Флинном (Michael Flynn). Все разнообразие архитектур ЭВМ в этой таксономии Флинна сводится к четырем классам:
- ОКОД в Вычислительная система с одиночным потоком команд и одиночным потоком данных
(SISD, Single Instruction stream over a Single Data stream). - ОКМД в Вычислительная система с одиночным потоком команд и множественным потоком данных
(SIMD, Single Instruction, Multiple Data). - МКОД в Вычислительная система со множественным потоком команд и одиночным потоком данных
(MISD, Multiple Instruction Single Data). - МКМД в Вычислительная система со множественным потоком команд и множественным потоком данных
(MIMD, Multiple Instruction Multiple Data).
Типичными представителями SIMD являются векторные архитектуры. К классу MISD ряд исследователей относит конвейерные ЭВМ, однако это не нашло окончательного признания, поэтому можно считать, что реальных систем в представителей данного класса не существует. Класс MIMD включает в себя многопроцессорные системы, где процессоры обрабатывают множественные потоки данных.
Отношение конкретных машин к конкретному классу сильно зависит от точки зрения исследователя. Так, конвейерные машины могут быть отнесены и к классу SISD (конвейер в единый процессор), и к классу SIMD (векторный поток данных с конвейерным процессором) и к классу MISD (множество процессоров конвейера обрабатывают один поток данных последовательно), и к классу MIMD в как выполнение последовательности различных команд (операций ступеней конвейера) на множественным скалярным потоком данных (вектором).
[править] Суперскалярные и VLIW машины
Существуют два типа машин (процессоров), выдающих несколько команд за один такт: суперскалярные машины и VLIW-машины. Суперскалярные машины могут выдавать на выполнение в каждом такте переменное число команд, и работа их конвейеров может планироваться как статически с помощью компилятора, так и с помощью аппаратных средств динамической оптимизации. Суперскалярные машины используют параллелизм на уровне команд путем посылки нескольких команд из обычного потока команд в несколько функциональных устройств.
Дополнительно, чтобы снять ограничения последовательного выполнения команд, эти машины используют механизмы внеочередной выдачи и внеочередного завершения команд (англ. OoO, Out of Order execution), прогнозирование переходов (англ. Branch prediction), кэши целевых адресов переходов и условное (по предположению) выполнение команд.
В отличие от суперскалярных машин, VLIW-машины выдают на выполнение фиксированное количество команд, которые сформатированы либо как одна большая команда, либо как пакет команд фиксированного формата. Планирование работы VLIW-машины всегда осуществляется компилятором. В типичной суперскалярной машине аппаратура может осуществлять выдачу от одной до восьми команд в одном такте. Обычно эти команды должны быть независимыми и удовлетворять некоторым ограничениям, например таким, что в каждом такте не может выдаваться более одной команды обращения к памяти. Если какая-либо команда в потоке команд является логически зависимой или не удовлетворяет критериям выдачи, на выполнение будут выданы только команды, предшествующие данной. Поэтому скорость выдачи команд в суперскалярных машинах является переменной. Это отличает их от VLIW-машин, в которых полную ответственность за формирование пакета команд, которые могут выдаваться одновременно, несет компилятор, а аппаратура в динамике не принимает никаких решений относительно выдачи нескольких команд.
Использование VLIW приводит в большинстве случаев к быстрому заполнению небольшого объема внутрикристальной памяти командами NOP (no operation), которые предназначены для тех устройств, которые не будут задействованы в текущем цикле. В существующих VLIW разработках был найден большой паллетный недостаток, который был устранен делением длинных слов на более мелкие, параллельно поступающие к каждому устройству. Обработка множества команд независимыми устройствами одновременно является главной особенностью суперскалярной процессорной архитектуры.
[править] Классификация Хокни (Roger W. Hockney)
Классификация машин MIMD-архитектуры :
- Переключаемые в с общей памятью и с распределённой памятью.
- Конвейерные.
- Сети в регулярные решётки, гиперкубы, иерархические структуры, изменяющие конфигурацию.
В класс конвейерных архитектур (по Хокни) попадают машины с одним конвейерным устройством обработки, работающим в режиме разделения времени для отдельных потоков. Машины, в которых каждый поток обрабатывается своим собственным устройством Хокни назвал переключаемыми. В класс переключаемых машин попадают машины, в которых возможна связь каждого процессора с каждым, реализуемая с помощью переключателей в машины с распределённой памятью. Если же память есть разделяемый ресурс, машина называется с общей памятью. При рассмотрении машин с сетевой структурой Хокни считал, что все они имеют распределённую память. Дальнейшую классификацию он проводил в соответствии с топологией сети.
[править] Классификация Фенга
В 1972 году Фенг (T. Feng) предложил классифицировать вычислительные системы на основе двух простых характеристик. Первая в число n бит в машинном слове, обрабатываемых параллельно при выполнении машинных инструкций. Практически во всех современных компьютерах это число совпадает с длиной машинного слова. Вторая характеристика равна числу слов m, обрабатываемых одновременно данной ВС. Немного изменив терминологию, функционирование ВС можно представить как параллельную обработку n битовых слоёв, на каждом из которых независимо преобразуются m бит. Каждую вычислительную систему можно описать парой чисел (n, m). Произведение P = n x m определяет интегральную характеристику потенциала параллельности архитектуры, которую Фенг назвал максимальной степенью параллелизма ВС.
[править] Классификация Хэндлера
В основу классификации В.Хендлер закладывает явное описание возможностей параллельной и конвейерной обработки информации вычислительной системой. Предложенная классификация базируется на различии между тремя уровнями обработки данных в процессе выполнения программ:
- уровень выполнения программы в опираясь на счетчик команд и некоторые другие регистры, устройство управления (УУ) производит выборку и дешифрацию команд программы;
- уровень выполнения команд в арифметико-логическое устройство компьютера (АЛУ) исполняет команду, выданную ему устройством управления;
- уровень битовой обработки в все элементарные логические схемы процессора (ЭЛС) разбиваются на группы, необходимые для выполнения операций над одним двоичным разрядом.
Подобная схема выделения уровней предполагает, что вычислительная система включает какое-то число процессоров каждый со своим устройством управления. Если на какое-то время не рассматривать возможность конвейеризации, то число устройств управления k, число арифметико-логических устройств d в каждом устройстве управления и число элементарных логических схем w в каждом АЛУ составят тройку для описания данной вычислительной системы C: (k, d, w)
k в число УУ, d в число АЛУ в каждом УУ, w в число разрядов в слове, обрабатываемых в АЛУ параллельно
[править] Классификация Шнайдера
В 1988 году Шнайдер (L.Snyder) предложил новый подход к описанию архитектур параллельных вычислительных систем, попадающих в класс SIMD систематики Флинна. Основная идея заключается в выделении этапов выборки и непосредственно исполнения в потоках команд и данных.
[править] Классификация Скилликорна
Классификация Скилликорна (1989) была очередным расширением классификации Флинна. Архитектура любого компьютера в классификации Скилликорна рассматривается в виде комбинации четырёх абстрактных компонентов: процессоров команд (Instruction Processor в интерпретатор команд, может отсутствовать в системе), процессоров данных (Data Processor в преобразователь данных), иерархии памяти (Instruction Memory, Data Memory в память программ и данных), переключателей (связывающих процессоры и память). Переключатели бывают четырёх типов в «1-1» (связывают пару устройств), «n-n» (связывает каждое устройство из одного множества устройств с соответствующим ему устройством из другого множества, то есть фиксирует попарную связь), «n x n» (связь любого устройства одного множества с любым устройством другого множества). Классификация Скилликорна основывается на следующих восьми характеристиках:
- Количество процессоров команд IP
- Число ЗУ команд IM
- Тип переключателя между IP и IM
- Количество процессоров данных DP
- Число ЗУ данных DM
- Тип переключателя между DP и DM
- Тип переключателя между IP и DP
- Тип переключателя между DP и DP
[править] См. также
[править] Ссылки
- Классификации архитектур вычислительных систем на основе пособия Вл. В.Воеводин, А. П. Капитонова. «Методы описания и классификации вычислительных систем». Издательство МГУ,1994.
- Бакалаврская работа с краткой классификацией ВС (самораспаковывающийся архив)
- http://hosting.ulstu.ru/umk/umk/ap/lections/transputers/microprocessor%20architectures/classif.htm
| Технологии цифровых процессоров | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Архитектура |
CISC · EDGE · EPIC · MISC · URISC · RISC · VLIW · ZISC · Фон Неймана · Гарвардская · |
||||||||
| Параллелизм |
|
||||||||
| Реализации | DSP · GPU · SoC · PPU · Векторный процессор · Математический сопроцессор Микропроцессор · Микроконтроллер | ||||||||
| Компоненты | Barrel shifter · FPU · BSB · MMU · TLB · Регистровый файл · control unit · АЛУ Демультиплексор · Мультиплексор · Микрокод · Тактовая частота Корпус Регистры Кэш (Кэш процессора) | ||||||||
| Управление питанием | APM · ACPI · Clock gating · Динамическое изменение частоты Динамическое изменение напряжения | ||||||||

