Пересылка операндов - Operand forwarding

Пересылка операндов (или же пересылка данных) - оптимизация в конвейерной Процессоры ограничить снижение производительности, возникающее из-за стойла трубопроводов.[1][2] А опасность данных может привести к стойло трубопровода когда текущая операция должна дождаться результатов более ранней операции, которая еще не завершилась.

Пример

ДОБАВИТЬ A B C # A = B + CSUB D C A # D = C-A

Если эти двое сборка Команды псевдокода выполняются в конвейере, после выборки и декодирования второй инструкции конвейер останавливается, ожидая, пока результат сложения не будет записан и прочитан.

Без пересылки операндов
12345678
Получить ДОБАВИТЬДекодировать ДОБАВИТЬЧитать операнды ADDВыполнить ДОБАВИТЬНапишите результат
Получить SUBДекодировать SUBларекларекЧитать операнды SUBВыполнить SUBНапишите результат
С пересылкой операндов
1234567
Получить ДОБАВИТЬДекодировать ДОБАВИТЬЧитать операнды ADDВыполнить ДОБАВИТЬНапишите результат
Получить SUBДекодировать SUBларекЧитать операнды SUB: использовать результат предыдущей операцииВыполнить SUBНапишите результат

В некоторых случаях все задержки из-за таких опасностей чтения после записи данных могут быть полностью устранены пересылкой операндов:[3][4][5]

С пересылкой операндов
123456
Получить ДОБАВИТЬДекодировать ДОБАВИТЬЧитать операнды ADDВыполнить ДОБАВИТЬНапишите результат
Получить SUBДекодировать SUBЧитать операнды SUB: использовать результат предыдущей операцииВыполнить SUBНапишите результат


Техническая реализация

ЦП устройство управления должен реализовать логику для обнаружения зависимостей, в которых пересылка операндов имеет смысл. А мультиплексор затем можно использовать для выбора подходящего регистр или же резкий поворот читать операнд из.

Смотрите также

Рекомендации

  1. ^ "CMSC 411, лекция 19, Конвейерная передача данных". Университет Мэриленда, факультет информатики и электротехники округа Балтимор. Получено 2020-01-22.
  2. ^ «Высокопроизводительные вычисления, Примечания класса 11». hpc.serc.iisc.ernet.in. Сентябрь 2000 г. Архивировано с оригинал на 2013-12-27. Получено 2014-02-08.
  3. ^ Гурпур М. Прабху. «Учебник по компьютерной архитектуре». Разделы«Экспедирование». и«Классификация опасностей для данных».
  4. ^ Доктор Орион Лоулор.«Конвейерная обработка, остановка конвейера и пересылка операндов».
  5. ^ Ларри Снайдер.«Обзор трубопровода».

внешняя ссылка