Классификация параллельных архитектур по Флинну (M. Flynn).
- SISD - 1 поток команд и 1 поток данных;
- SIMD – 1 поток команд и мн. поток данных – векторные архитектуры
- MISD – мн. поток команд и 1 поток данных - конвейеры
- MIMD – мн. поток команд и мн. поток данных – мп-системы
Суперскалярные
· выполнение в каждом такте переменное число команд
· Суперскалярные машины используют параллелизм на уровне команд путем посылки команд потока в несколько функциональных устройств.
· механизмы внеочередной выдачи и внеочередного завершения команд,
· прогнозирование переходов,
· кэши целевых адресов переходов.
· Обработка множества команд независимыми устройствами одновременно
VLIW-машины
· выполнение фиксированное количество команд,
· Планирование работы VLIW-машины всегда осуществляется компилятором.
· формирование пакета команд компилятором,
Ограничения возможности распараллеливания операций в компьютерах. Производительность процессора с суперскалярной организацией зависит от того, насколько возможно в определенной программе выполнять команды параллельно и независимо друг от друга.
Параллелизмом на уровне команд - возможность параллельного выполнения команд в определенной программе.
Ограничения возможности распараллеливания операций:
Взаимозависимость по данным. Рассмотрим последовательность машинных команд:
add r1, r2 ;Поместить в r1 содержимое r2, сложенное с содержимым r1.
move r3, r1 ;Поместить в r3 содержимое r1.
Вторую команду нельзя выполнить до тех пор, пока не будет завершено выполнение первой, хотя извлечь ее и расшифровать можно и до завершения выполнения первой команды. Именно такая ситуация и квалифицируется как взаимозависимость по данным в двух последовательных командах.
Процедурная зависимость - наличие условных переходов в последовательности выполняемых команд влияет на работу конвейера операций.
Говорят, что команды, следующие за командой условного перехода, имеют процедурную зависимость от ветвления и не могут быть выполнены до тех пор, пока не будет выполнена команда условного перехода.
параллельное извлечение команд в суперскалярной архитектуре невозможно при переменной длине команд. Именно поэтому суперскалярная организация более подходит к процессорам с RISC-архитектурой, в которых все команды имеют одинаковый размер.
Конфликт ресурсов - когда для выполнения разных команд должен быть использован один и тот же аппаратный ресурс.
Конфликт ресурсов сказывается на работе конвейера примерно так же, как зависимость по данным
Параллелизм на уровне команд - команды в последовательности независимы и могут выполняться параллельно, с перекрытием.
Степень параллелизма на уровне команд определяется:
- частотой фрагментов, где есть взаимозависимость команд по данным и процедурная зависимость.
- архитектуры набора команд
- специфики приложения
- операционной латентностью — задержка результата операции для дальнейш. use.
Аппаратный параллелизм — это мера способности процессора извлечь преимущества из параллелизма на уровне команд.
Аппаратный параллелизм определяется:
· количеством команд, которые процессор может извлечь и выполнить одновременно (количеством параллельных конвейеров)
· быстродействием и функциональными возможностями механизма выявления независимых команд
Оба показателя — и степень параллелизма на уровне команд, и степень аппаратного параллелизма — являются важнейшими факторами повышения производительности компьютера при выполнении приложений определенного класса.
Применение команд фиксированной длины, которое характерно для RISC-процессоров, потенциально способствует повышению степени параллелизма на уровне команд.
Параллелизм на уровне процессоров. Увеличение производительности за счет use нескольких процессоров.
Векторные компьютеры - класс компьютеров, ориентированный на операции над векторами.
Категории векторных компьютеров:
- процессор с конвейерным АЛУ
данные из памяти поступают через входные регистры в последовательно расположенные арифметически-логические устройства, последовательно проходя конвейер АЛУ, и через выходные регистры результаты обработки попадают обратно в память.
- процессор с параллельным АЛУ
данные из памяти поступают через входные регистры и распараллеливаются на несколько АЛУ, проходя их независимо друг от друга. Результаты обработки собираются в выходной поток и через выходные регистры направляются обратно в память.
- параллельные процессоры