19 lines
2.6 KiB
Markdown
19 lines
2.6 KiB
Markdown
![]() |
#### Причина возникновения структурных конфликтов. Изменение СРІ из-за структурных конфликтов.
|
|||
|
|
|||
|
Причиной возникновения структурного конфликта может быть:
|
|||
|
a. **Не полностью конвейеризованная структура процессора.**
|
|||
|
|
|||
|
Некоторые стадии отдельных команд могут выполняться более $1^{го}$ такта. В этом случае последовательные команды, которые используют данное функц. устройство, не могут поступать в него в каждом такте.
|
|||
|
b. **Недостаточное дублирование некоторых ресурсов.**
|
|||
|
|
|||
|
Препятствует выполнению произвольной последовательности команд в конвейере без его приостановки. Например, машина может иметь только 1 порт записи в регистровый файл, но конвейеру может потребоваться выполнить 2 записи в регистровый файл в $1^{ом}$ такте.
|
|||
|
с. **Общая память для инструкций и данных, и единственный порт памяти.**
|
|||
|
|
|||
|
Когда одна команда содержит обращение к памяти за данными, оно будет конфликтовать с выборкой более поздней команды из памяти. Чтобы разрешить эту ситуацию, можно просто приостановить конвейер на 1 такт, когда происходит обращение к памяти за данными. Это конвейерный пузырь.
|
|||
|
|
|||
|
CPI = идеальное CPI + средн. число тактов простоя на инструкцию.
|
|||
|
Но простои из-за разных конфликтов могут накладываться.
|
|||
|
В случае с структурным конфликтом при обращении к памяти (простой 1 такт), если обращение к памяти составит 40\% для некоторой программы, то без учета других потерь производительности:
|
|||
|
|
|||
|
CPI $=(1+0.4) \times$ CPI идеальное
|
|||
|
Т.е. CPU без структурного конфликта в 1.4 раза быстрее.
|