Files
Kirill 3a96c27c48 Arch: new
Все теоритические билеты по Архитектуре ЭВМ в основном были написаны,
кроме: 8.4; 13.4; 14.4; 15.4. Задачи будут позже.
2025-01-14 19:40:01 +03:00

3.4 KiB
Raw Blame History

Истинная зависимость по данным, антизависимость, выходная зависимость. Граф зависимостей.

Пусть есть 2 инструкции i, j. где i предшествует j в программе.

  • Инструкция j зависит по данным от инструкции i, если:
  • i выдает результат, используемый j (конфликт RAW), если порядок выполнения не сохраняется.
  • j зависит по данным от k и k зависит по данным от i (цепочка конфликтов RAW).

Пример зависимости по данным:

Loop: LD [R1], F0
DADD F2, F0, F4
ST F4, [R1]

Зависимость по именам возникает, когда 2 инструкции используют один и тот же регистр или место в памяти, т.е. общее имя места. Между инструкциями, имеющими зависимость по именам, нет потока данных (нет отношения выдает/использует). Может существовать два типа зависимостей по именам:

  • Антизависимость.
  • Существует, когда j пишет в тот же регистр или место в памяти, которое i читает.

Нарушение антизависимости (относительный порядок чтения/записи изменен): приводит к конфликту WAR и потому относительный порядок чтения/записи и исполнения должен сохраняться. i считывает значение по имени, j записывает значение по тому же имени. j антизависима от i. Изменение относительного порядка исполнения i, j нарушает эту зависимость по именам и приводит к конфликту WAR и некорректному исполнению.

  • Выходная зависимость (зависимость записи).
  • Существует, когда i и j пишут в один и тот же регистр или место в памяти.

Нарушение выходной зависимости (относительный порядок записи изменен): приводит к конфликту WAW и потому порядок записи и исполнения должен сохраняться. i, j пишут по одинаковому имени. Тогда j зависима по выходу от i. Изменение относительного порядка исполнения i, j нарушает эту зависимость по именам и приводит к конфликту WAW и некорректному исполнению.

Пример:

1 LD F0, [R1]
2 DADD F2, F0, F4
3 ST F4, [R1]
4 LD F0, [R1-8]
5 DADD F2, F0, F4
6 ST F4, [R1-8]

В графе можем переупорядочивать инструкции только если сохраняется порядок стрелок.