Все теоритические билеты по Архитектуре ЭВМ в основном были написаны, кроме: 8.4; 13.4; 14.4; 15.4. Задачи будут позже.
30 lines
3.4 KiB
Markdown
30 lines
3.4 KiB
Markdown
#### Определение динамического планирования. Принципы реализации динамического планирования.
|
||
|
||
**Динамическое планирование** (неупорядоченное исполнение, out-of-order execution) - аппаратный механизм переупорядочивания (изменения порядка исполнения инструкций) во время исполнения.
|
||
|
||
Не может преодолеть истинные зависимости данных, но пытается сократить или даже предотвратить простои.
|
||
Позволяет обрабатывать случаи, когда зависимости между инструкциями неизвестны во время компиляции.
|
||
|
||
**Концепции:**
|
||
|
||
- Инструкциям разрешается исполняться неупорядоченно, как только становятся доступны их операнды.
|
||
- Разрешение инструкциям неупорядоченно завершаться.
|
||
|
||
**Реализация динамического планирования:**
|
||
|
||
- Ступень декодирования инструкций ID делится на 2 ступени:
|
||
|
||
1. **Выдача** - декодирование инструкций, проверка структурных конфликтов. Всегда выполняется в порядке, указанном в программе.
|
||
Зависимости под данными записываются по мере того, как инструкции выдаются (динамически создается эквивалент графа зависимостей для множества инструкций, которые находятся в ЦП)
|
||
2. **Чтение операндов** - ожидание разрешения конфликтов данных, если они есть, и последующее чтение операндов по мере их доступности. Может происходить в порядке, отличном от указанного в программе.
|
||
|
||
- На ступени выборки инструкции IF производится выборка дополнительной инструкции в специальный регистр или нескольких инструкций в очередь в каждом такте.
|
||
- Увеличивается число функциональных устройств для исполнения большего числа инструкций на ступени EX без структурных конфликтов.
|
||
- Два подхода к реализации:
|
||
|
||
1) **Табло (Scoreboard)**, 1963.
|
||
2) **Алгоритм Томасуло**, 1966.
|
||
|
||
Будем считать, что стадия выборки выполняется на соответствующем для нее такте, что конфликтов управления у нас не возникает, что выборка всегда успевает поставить нам очередную инструкцию.
|
||
Предполагаем, что может быть реализовано несколько исполняющих блоков на стадии исполнения.
|