Пересылка операндов
Пересылка операндов (или пересылка данных ) — это оптимизация конвейерных процессоров для ограничения дефицита производительности, возникающего из-за остановок конвейера . [1] [2] Опасность данных может привести к остановке конвейера , когда текущей операции приходится ждать результатов предыдущей операции, которая еще не завершилась.
Пример [ править ]
ADD A B C #A=B+C SUB D C A #D=C-A
Если эти две инструкции псевдокода ассемблера выполняются в конвейере, после выборки и декодирования второй инструкции конвейер останавливается, ожидая, пока результат сложения будет записан и прочитан.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
Получить ДОБАВИТЬ | Декодировать ДОБАВИТЬ | Чтение операндов ADD | Выполнить ДОБАВИТЬ | Написать результат | |||
Получить подписку | Декодировать подписку | ларек | ларек | Чтение операндов SUB | Выполнить подписку | Написать результат |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|
Получить ДОБАВИТЬ | Декодировать ДОБАВИТЬ | Чтение операндов ADD | Выполнить ДОБАВИТЬ | Написать результат | ||
Получить подписку | Декодировать подписку | ларек | Чтение операндов SUB: использовать результат предыдущей операции. | Выполнить подписку | Написать результат |
В некоторых случаях все задержки из-за таких опасностей чтения после записи данных могут быть полностью устранены путем пересылки операндов: [3] [4] [5]
1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
Получить ДОБАВИТЬ | Декодировать ДОБАВИТЬ | Чтение операндов ADD | Выполнить ДОБАВИТЬ | Написать результат | |
Получить подписку | Декодировать подписку | Чтение операндов SUB: использовать результат предыдущей операции. | Выполнить подписку | Написать результат |
Техническая реализация [ править ]
ЦП Блок управления должен реализовать логику для обнаружения зависимостей, в которых имеет смысл пересылка операндов. регистра чтения Затем можно использовать мультиплексор для выбора правильного или триггера для операнда.
См. также [ править ]
Ссылки [ править ]
- ^ «CMSC 411, лекция 19, Конвейерная пересылка данных» . Факультет компьютерных наук и электротехники Университета Мэриленда, округ Балтимор . Проверено 22 января 2020 г.
- ^ «Высокопроизводительные вычисления. Конспект 11 класса» . hpc.serc.iisc.ernet.in. Сентябрь 2000 г. Архивировано из оригинала 27 декабря 2013 г. Проверено 8 февраля 2014 г.
- ^ Гурпур М. Прабху. «Учебник по архитектуре компьютера». Разделы «Пересылка» . и «Классификация опасностей данных» .
- ^ Доктор Орион Лоулор. «Конвейерная обработка, остановки конвейера и пересылка операндов» .
- ^ Ларри Снайдер. «Обзор трубопровода» .