Современные высокопроизводительные компьютеры
При наличии только одного порта записи в регистровый файл машина должна обеспечить последовательное завершение команд. Этот единственный регистровый порт является источником структурных конфликтов. Чтобы решить эту проблему, можно увеличить количество портов в регистровом файле, но такое решение может оказаться неприемлемым, поскольку эти дополнительные порты записи скорее всего будут редко использоваться. Однако в установившемся состоянии максимальное количество необходимых портов записи равно 1. Поэтому в реальных машинах разработчики предпочитают отслеживать обращения к порту записи в регистры и рассматривать одновременное к нему обращение как структурный конфликт. Команда Номер такта
1 2 3 4 5 6 7 8 9 10
MULTD F0,F4,F6 IF ID EX11 EX12 EX13 EX21 EX22 EX23 MEM WB
... IF ID EX MEM WB
ADDD F2,F4,F6 IF ID EX11 EX12 EX21 EX22 MEM WB
... IF ID EX MEM WB
... IF ID EX MEM WB
LD F8,0(R2) IF ID EX MEM WB
Рис. 5.20. Пример конфликта по записи в регистровый файл Имеется два способа для обхода этого конфликта. Первый заключается в отслеживании использования порта записи на ступени ID конвейера и приостановке выдачи команды как при структурном конфликте. Схема обнаружения такого конфликта обычно реализуется с помощью сдвигового регистра. Альтернативная схема предполагает приостановку конфликтующей команды, когда она пытается попасть на ступень MEM конвейера. Преимуществом такой схемы является то, что она не требует обнаружения конфликта до входа на ступень MEM, где это легче сделать. Однако подобная реализация усложняет управление конвейером, поскольку приостановки в этом случае могут возникать в двух разных местах конвейера. Другой проблемой является возможность конфликтов типа WAW.
|