ВУЗ:
Составители:
10
ного машинного такта, а также разные длительности тактов отдельных микроопе-
раций.
Конфликты по данным связаны с последовательным выполнением команд в
программах. Например, в последовательности:
Add R1,R2
Sub R3,R1
And R4,R1
Or R5,R1
Xor R6,R1
Все команды, следующие за Add, используют ее результат (который поме-
щен в регистр R1). Такие конфликты возможны везде, где имеет место зависи-
мость между командами, и они расположены достаточно близко друг к другу.
Причем эти конфликты могут происходить не только при обращении к регистрам
АЛУ, но и при обращении к одной и той же ячейке памяти.
Конфликты по управлению могут быть самыми тяжелыми с точки зрения
потерь производительности конвейера. При выполнении команд условного пере-
хода значение счетчика команд изменяется только в одном из двух случаев (когда
переход происходит). В этом случае работа конвейера приостанавливается до тех
пор, пока в его начало не будет загружена команда с новым адресом (адресом пе-
рехода).
В реальных системах разрабатываются меры борьбы с перечисленными
конфликтами. Например, структурные конфликты могут быть ликвидированы за
счет создания так называемых «полностью конвейерных устройств», в которых
длительности тактов выполнения всех микроопераций одинаковы, используется
раздельная память команд и данных и другие средства. Конфликты по данным
устраняются с помощью оптимизирующих компиляторов, которые изменяют по-
рядок выполнения команд в программе так, чтобы команды, связанные по данным,
располагались в ней на расстоянии, превышающем длину конвейера. Другим пу-
тем ликвидации этих конфликтов является расширение регистровой и кэш памяти,
в частности, создание регистровых файлов, в которых запись данных производит-
ся в разные ячейки. Конфликты по управлению устраняются за счет дублирования
ветвей, а также использования так называемого отсроченного или прогнозируемо-
го перехода.
Так, в процессорах семейства P6 (Pentium Pro и Pentium II) используется
конвейер, в котором для предотвращения конфликтов применены такие приемы,
как внеочередное выполнение команд, переименование регистров и предсказание
ветвлений. Этот конвейер содержит три декодера: один для сложных команд, со-
держащих четыре и более микрооперации, и два - для простых, состоящих из од-
ной микрооперации. Перед выполнением код программы оптимизируется, т.е.
преобразуется таким образом, чтобы в одном такте осуществлялось декодирова-
ние последовательности микроопераций вида: 4-1-1. Это позволяет обеспечить
максимальную производительность декодеров.
ного машинного такта, а также разные длительности тактов отдельных микроопе- раций. Конфликты по данным связаны с последовательным выполнением команд в программах. Например, в последовательности: Add R1,R2 Sub R3,R1 And R4,R1 Or R5,R1 Xor R6,R1 Все команды, следующие за Add, используют ее результат (который поме- щен в регистр R1). Такие конфликты возможны везде, где имеет место зависи- мость между командами, и они расположены достаточно близко друг к другу. Причем эти конфликты могут происходить не только при обращении к регистрам АЛУ, но и при обращении к одной и той же ячейке памяти. Конфликты по управлению могут быть самыми тяжелыми с точки зрения потерь производительности конвейера. При выполнении команд условного пере- хода значение счетчика команд изменяется только в одном из двух случаев (когда переход происходит). В этом случае работа конвейера приостанавливается до тех пор, пока в его начало не будет загружена команда с новым адресом (адресом пе- рехода). В реальных системах разрабатываются меры борьбы с перечисленными конфликтами. Например, структурные конфликты могут быть ликвидированы за счет создания так называемых «полностью конвейерных устройств», в которых длительности тактов выполнения всех микроопераций одинаковы, используется раздельная память команд и данных и другие средства. Конфликты по данным устраняются с помощью оптимизирующих компиляторов, которые изменяют по- рядок выполнения команд в программе так, чтобы команды, связанные по данным, располагались в ней на расстоянии, превышающем длину конвейера. Другим пу- тем ликвидации этих конфликтов является расширение регистровой и кэш памяти, в частности, создание регистровых файлов, в которых запись данных производит- ся в разные ячейки. Конфликты по управлению устраняются за счет дублирования ветвей, а также использования так называемого отсроченного или прогнозируемо- го перехода. Так, в процессорах семейства P6 (Pentium Pro и Pentium II) используется конвейер, в котором для предотвращения конфликтов применены такие приемы, как внеочередное выполнение команд, переименование регистров и предсказание ветвлений. Этот конвейер содержит три декодера: один для сложных команд, со- держащих четыре и более микрооперации, и два - для простых, состоящих из од- ной микрооперации. Перед выполнением код программы оптимизируется, т.е. преобразуется таким образом, чтобы в одном такте осуществлялось декодирова- ние последовательности микроопераций вида: 4-1-1. Это позволяет обеспечить максимальную производительность декодеров. 10
Страницы
- « первая
- ‹ предыдущая
- …
- 8
- 9
- 10
- 11
- 12
- …
- следующая ›
- последняя »