- •Конвейер команд
- •В конструкцию процессора вносят изменения:
- •Конвейер
- •Пятиступенчатая схема конвейера
- •Суперконвейер
- •Задержки конвейера
- •Задержка работы устройств
- •Задержка чтения
- •Этап декодирования и извлечения операндов также может затянуться.
- •Выполнение арифметических операций в устройстве Е тоже происходит за разное время. Умножение, а
- •На время работы устройств F,D,W большое влияние оказывает эффективное использование кэш памяти.
- •Другие методы:
- •Конфликты по ресурсам
- •Конфликт при одновременном обращении к регистрам возникает из-за того, что доступ ко всем
- •Явный конфликт по данным
- ••«Чтение после записи» можно распознать на этапе трансляции программы и предотвратить их.
- •Использование команды NOP
- •Процессоры распознают конфликт по данным и блокируют работу следующей команды конвейера.
- ••Предположим, команда 1 вычисляет значение переменной, которая должна быть в 2. Устройство D
- •Продвижение операндов
- •Скрытые конфликты по данным.
- •Некоторые команды могут изменять или использовать содержимое регистров по умолчанию, без явного указания
- •Передача управления
- ••Простейший метод работы с условными переходами заключается в приостановке конвейера как только обнаружена
- ••Предположим, 1 – команда условной передачи управления. После неё или 2, или N.
- ••В конвейер загружаются и начинают выполняться команды 2, 3, 4. После 4 выясняется
- •Для уменьшения числа слотов задержки используется приём, аналогичный продвижению операндов: целевой адрес передаётся
- •Безусловный переход
- •Branch Target Buffer
- •Условный переход
- •Как только команда условного перехода встретилась, то начинает работать вторая ветвь. Одновременно в
- •Исполнение команд на конвейере с параллельными ветвями
- •Недостатки
- •2 группа методов снижения потерь
- •Основные направления развития систем команд
Суперконвейер
•Cуперконвейер ведет не только к увеличению скорости вычислений, но и к возникновению дополнительных сложностей. Возрастает вероятность конфликтов. Дороже встает ошибка предсказания перехода - приходится сбрасывать весь длинный конвейер, на что требуется дополнительное время. Усложняется логика взаимодействия ступеней. Однако за счет использования новых архитектур удается справиться с большинством проблем.
Задержки конвейера
1.Задержка работы устройств – выполнение некоторых шагов более чем за один такт
2.Конфликт по ресурсам
3.Явный конфликт по данным
4.Скрытый конфликт по данным (побочные эффекты)
Задержка работы устройств
•Выполнение любого из шагов четырёхступенчатого конвейера может затянуться и тогда одна команда задерживает все остальные.
Задержка чтения
Показан
случай, когда на чтение уходит более 1 такта (нужной команды не оказалось в кэше)
Этап декодирования и извлечения операндов также может затянуться.
Задержка на втором шаге
Шаг D второй команды выполняется в течение трёх тактов… В конвейере образуется «пузырь»
Выполнение арифметических операций в устройстве Е тоже происходит за разное время. Умножение, а тем более деление требуют нескольких тактов. «Пузырь» продвигается сверху вниз.
Задержка на третьем шаге
На время работы устройств F,D,W большое влияние оказывает эффективное использование кэш памяти.
•Очень полезное усовершенствование конвейера – увеличение размеров буфера и организация в нём очереди команд. Устройство F, может не считаться с тем, что следующее устройство ещё не закончило работу и не освободило буфер. F вызывает следующую команду и записывает её в конец очереди – упреждающая выборка.
Другие методы:
1.Разработка процессоров с несколькими конвейерами команд
2.Разработка процессоров с такой системой команд, в которой все операции выполняются за равное число тактов (RISC-процессоры) или процессоров с RISC-ядром.
Конфликты по ресурсам
Схема конвейера с указанием ресурсов
Конфликт при одновременном обращении к регистрам возникает из-за того, что доступ ко всем регистрам происходит через один общий порт
Меры по уменьшению:
1.Введение раздельных кэшей данных и команд
2.В процессорах с двумя портами регистров можно одновременно обращаться к двум регистрам
3.Расслоение памяти создаёт возможность одновременного обращения к ячейкам из разных блоков.