ВУЗ:
Составители:
Фиксированные размеры связки и команд внутри нее – особен-
ность RISC -архитектуры. Обнаружение команд, которые независи-
мы между собой и могут выполняться параллельно, возлагается на
компилятор. Поле предиката используется в технологии предикации.
5.8.2 Технология предикации и спекулятивное выполнение
В рамках концепции EPIC разработана специальная технология.
Предикация – способ обработки условных ветвлений, в отличие от
обработки условных команд. Компилятор находит в исходной про-
грамме оператор с условным переходом и определяет наборы команд,
принадлежащих обоим ветвлениям. Если ветви можно выполнить па-
раллельно, то компилятор помечает все команды одной ветви полем
предиката. В это поле заносится адрес одноразрядного регистра пре-
диката в регистровом файле РП. Когда при выполнении программы
процессор встречает помеченное ветвление, он начинает выполнять
обе ветви одновременно. Это и есть спекулятивное выполнение (вы-
полнение по предположению). На рис. 5.9 показаны участок програм-
мы с ветвлениями и структура регистрового файла РП.
При выполнении команды С3 условного перехода помечаются
обе ветви – команды С4, С5, С6 и команды С7, С8, С9. Левая ветвь
получает предикат Р1, адрес которого в регистровом файле РП,
например, 111110. Правая ветвь получает предикат Р2. Его адрес –
000010. По этим адресам в одноразрядные регистры РП заносится
значение 0. В это время результат команды С3 (IF) еще не известен.
Процессор выполняет обе ветви, но не использует пока результаты
выполненных команд, расположенных вне тела условного оператора.
На этапе выполнения С10 завершается вычисление логического усло-
вия команды С3 и определяется адрес перехода. Так как значение
TRUE получено для правой ветви, то в регистр предиката с адресом
000010 заносится 1, а в регистре с адресом 111110 остается значение
0. Теперь процессор будет использовать результаты только тех ко-
105
Страницы
- « первая
- ‹ предыдущая
- …
- 101
- 102
- 103
- 104
- 105
- …
- следующая ›
- последняя »