
Классификация Фишера для мелкозернистого паралеллизма
Мелкозернистый параллелизм – это параллелизм в обработке смежных ко
манд, операторов, небольших векторов данных.
Чтобы реализовать этот вид параллелизма, компилятор и аппаратура должны выполнить следующие действия: определить зависимости между операциями; определить операции, которые не зависят ни от каких еще не завершенных операций; спланировать время и место выполнения операций.
В соответствиис этим архитектуры с МЗП можно классифицировать сле-
дующим образом:
1. Последовательностные архитектуры: архитектуры, в которых компиляторне помещает в программу в явном виде какую-либо информацию о параллелизме. Компилятор только перестраивает код для упрощения действий аппа-
ратуры по планированию. Представителями этого класса являются супер-
скалярные процессоры.
2. Архитектуры с указанием зависимостей: в программе компилятором явно представлены зависимости, которые существуют между операциями, неза-
висимость между операциями определяет аппаратура. Этот класс представ-
ляют процессоры потока данных.
3. Независимостные архитектуры: архитектуры, в которых компилятор помещает в программу всю информацию о независимости операций друг от друга. Это VLIW-архитектуры.
Классы микропроцессоров по Фишеру
Тип архитектуры |
Кто определяет зависимость по данным |
Кто определяет независимость по данным |
Кто планирует время и место выполнения |
Представители
|
Последователь- ностные |
Аппаратура |
Аппаратура |
Аппаратура |
Сперскалярный Pentium |
Зависимостные |
компилятор |
Аппаратура |
Аппаратура |
Потоковый Pentium Pro |
Независимостн- ые |
компилятор |
компилятор |
компилятор |
VLIW про- цессоры |
Суперскалярные процессоры.
В таких архитектурах компилятор не производит выявление параллелизма, поэтому программы для последовательностных архитектур не содержат явно выраженной информации об имеющемся параллелизме, и зависимости между командами должны быть определены аппаратурой.
В некоторых случаях компилятор может для облегчения работы аппаратуры производить упорядочивание команд. Если команда не зависит от всех других команд, она может быть запущена. Возможны два варианта последовательной архитектуры: суперконвейер и суперскалярная организация. В первом случае параллелизм на уровне команд нужен для того, чтобы исключить остановки конвейера. Здесь аппаратура должна определить зависимости между командами и принять решение, когда запускать очередную команду. Если конвейер способен вырабатывать один результат в каждом такте, такой конвейер называется суперконвейером. За счет уменьшения объема работы в одном такте возникает возможность повысить частоту тактирования процессора. При этом, чем длинее конвейер, тем выше частота. Современные конвейеры имеют длину до 30 этапов.
Дальнейшая цель – построение процессора с несколькими конвейерами,
что позволяет запускать несколько команд каждый такт. Такой процессор называется суперскалярным.