Условный переход
Передача управления
Предположим, команда 1 – команда условной передачи управления. После ее завершения должна выполнять либо команду 2, либо команду N.
Схема условной передачи управления:
K1 | F1 | D1 | F1 | W1 | ||||
K2 | F2 | D2 | E1 | W2 | ||||
K3 | F3 | D3 | E3 | W3 | ||||
K… | … | … | … | … | ||||
Kn | Fn | Dn | En | Wn | ||||
Kn+1 | Fn+1 | Dn+1 | En+1 | Wn+1 |
Если переход произойдет, то конвейер теряет 3 такта. Команды 2, 3, 4 из конвейера удаляются. Эти команды называют слотами задержки перехода. Число слотов зависит от числа ступеней. В длинных конвейерах их больше. Применяется условный адрес, передающихся непосредственно УК.
Безусловный переход – устройство Е(исполнительное) определяет, нужен ли переход, но если адрес перехода выполняется раньше устройством D. При этом теряется только один такт.
Другой, более дорогой вариант. Процессор имеет в своем составе буфер адресов перехода.
ВТВ(Branch Target Buffer) - небольшая КЭШ-память, хранящая таблицу последних переходов.
|
|
Формат:
Адрес команды |
Адрес перехода |
Устройство F ищет адрес команды в левой части таблицы. Когда находит, выбирает по адресу правую.
При обработке на конвейере команд условного перехода адрес перехода вычисляется на ранней стадии, а возможно он потребуется в конце конвейера. Возникает значительная задержка. Чтобы их избежать, применяют параллельное исполнение обеих ветвей алгоритма. Поэтому приходится дублировать часть устройств конвейера.
Схема конвейера с параллельным ветвлением
Альтернатива: использует методы, предсказывающие переход (будет или нет). Статические предсказания переходов. Команды условного перехода имеют управление битами, устанавливающиеся компилятором по результатам прогноза.
Динамический метод предсказания: перед каждым использованием команды перехода делается прогноз и выбирается ветвь алгоритма.
Дальнейшее повышение производительности процессора связано с архитектурным решениями. По этому появились многоуровневые КЭШ и конвейер команд. Оказалось, что сложные системы команд, наличие разных форматов команд, способов адресации создают проблемы для конвейера. Для преодоления трудностей возможны два направления:
I. Возврат к процессорам с простой системой команд, а реализация параллельной обработки, упреждающей выборки и других сложностей возлагается на компилятор. Реализация этого направления возможна при помощи процессора RISC – Reduced Instruction Computer – ПК с сокращенным набором команд. Эти процессоры приспособлены для работы конвейера. Имеет следующие типы организации:
|
|
1. Стандартная длина команд, равная шине данных
2. Небольшое число различных команд
3. Малое число способов адресации
4. Малое число форматов команд
5. Обращение к памяти в командах не более одного раза(чтение или запись)
6. Большое число регистров
Реализация этих принципов упрощает управляющее устройство ввода процессора. Упрощение команд и адресаций приводит к тому, что сложную команду заменяют несколькими простыми.
II. Сохранение сложной системы команд с форматами разной длины и большим числом способов адресации при небольшом числе РОН. Компьютеры с такой архитектурой называются CISC – Complex Instruction Set Computer – ПК с полным набором команд. Это направление сохраняет простоту трансляции программ с языков высокого уровня на машинный язык. Это направление связывает три подхода:
1. Супер конвейер – требование к любому конвейеру – время обработки на каждой ступени одинаково. Обеспечить равномерность возможно уменьшением объема работ на каждой ступени за счет увеличения числа ступеней. Конвейеры, имеющие больше шести ступеней, называют супер - конвейерами. Основной недостаток их – конфликты, возникающие между командами, расположенными даже не очень близко. В конвейере с двадцатью ступенями одновременно выполняется двадцать команд. Число РОН не более двадцати и это приводит к конфликту данными.
2. Супере-скалярный конвейер – основная часть задержек конвейера связана с работой исполнительного блока (особенно с ПТ). В современных процессорах делают два исполнительных устройства: устройство для действий с ПТ и устройство целочисленной арифметики(с ФТ). Когда одно работает, другое –простаивает. Предложение: организация разделения единого конвейера команд на два потока. В супер-скалярном процессоре как минимум два параллельных работающих блока. Равномерность загрузки легче обеспечить для четырех и более магнитных блоков
Структура:
На блок диспетчеризации возлагается задача переставлять команды местами для подачи команд с ФТ, ПТ.
3. RISC – ядро. Стремления соединить достоинства CISC и RISC процессоров породила архитектурный гибрид. В процессорах фактически используют два ядра. Одно внешнее, второе внутреннее.
Схема структуры:
Обычно в одном процессоре реализуются все три подхода: супер - конвейер, супер -скалярный, RISC – ядро.