Arch: new
Все теоритические билеты по Архитектуре ЭВМ в основном были написаны, кроме: 8.4; 13.4; 14.4; 15.4. Задачи будут позже.
This commit is contained in:
9
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/1.md
Normal file
9
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/1.md
Normal file
@ -0,0 +1,9 @@
|
||||
#### Определение и причина возникновения конфликтов данных. Определение параллелизма на уровне инструкций (ILP).
|
||||
|
||||
**Конфликты данных** возникают, когда инструкция зависит от рез-та выполнения предыдущей инструкции таким образом, что это проявляется при перекрытии инструкций в конвейере.
|
||||
Происходят, когда рез-тат предыдущей инструкции, от которой зависит данная, неизвестен вовремя, или когда в конвейере меняется порядок чтения/записи операндов так, что результирующий порядок доступа отличается от исходного порядка доступа к операндам на машине без конвейера, что может привести к некорректному рез-ту выполнения программы.
|
||||
ADD R1, R2, R1;
|
||||
SUB зависит от ADD.
|
||||
SUB R3, R1, R3;
|
||||
**Распараллеливаемые (независимые)** - инструкции, не имеющие между собой зависимостей.
|
||||
**Высокая степень параллелизма на уровне инструкций (Instruction Level Parallelism, ILP)** - присутствует в заданной последовательности команд, если она имеет большое число распараллеливаемых инструкций.
|
7
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/2.md
Normal file
7
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/2.md
Normal file
@ -0,0 +1,7 @@
|
||||
#### Пересылка данных (Forwarding).
|
||||
|
||||
**Пересылка данных (Forwarding)** - аппаратный метод, также называемый обходом регистров (register bypassing) или закорачиванием (short-circuiting), используемый для исключения или минимизации простоев изза конфликтов данных.
|
||||
|
||||
- Рез-тат выполнения инструкции пересылывается напрямую из места, где он был получен, туда, где он нужен последующим инструкциям.
|
||||
- Рез-тат ALU из буферного регистра EX/MEM может перенаправлен к входным триггерам ALU вместо записи и последующего чтения операнда из регистра на ступени ID.
|
||||
- Рез-тат чтения данных из памяти из буферного регистра MEM/WB может перенаправлен на входные триггеры ALU.
|
26
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/3.md
Normal file
26
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/3.md
Normal file
@ -0,0 +1,26 @@
|
||||
#### Классификация конфликтов данных (RAW/WAW/WAR/RAR).
|
||||
|
||||
Пусть А стоит раньше В в потоке инструкций.
|
||||
|
||||
- **RAW (Read After Write)** - истинная зависимость по данным.
|
||||

|
||||
|
||||
В пытается читать операнд-источник данных прежде, чем А туда пишет, поэтому В получает неправильное значение (старое).
|
||||
A (Write)
|
||||
Data
|
||||
B (Read) $\star$
|
||||
|
||||
- **WAW (Write After Write)** - зависимость по именам регистров.
|
||||
|
||||
В пытается записать операнд прежде, чем он записан A, т.е запись происходит в неправильном порядке.
|
||||
|
||||

|
||||
|
||||
- **WAR (Write After Read)** - зависимость по именам регистров.
|
||||

|
||||
|
||||
В пытается записать результат в приемник прежде, чем он считывается A, поэтому А получает неправильное значение (новое).
|
||||
A (Read) $\qquad$
|
||||
B (Write) $\qquad$ Data
|
||||
|
||||
- **RAR (Read After Read)** - нет конфликта.
|
3
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/4.md
Normal file
3
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/4.md
Normal file
@ -0,0 +1,3 @@
|
||||
#### Обработка конфликтов данных в конвейере.
|
||||
|
||||
???
|
6
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/5.md
Normal file
6
2 курс/1 семестр/Архитектура ЭВМ/Лекции/8 билет/5.md
Normal file
@ -0,0 +1,6 @@
|
||||
#### Статическое планирование инструкций.
|
||||
|
||||
**Цель:** избегание или сокращение числа тактов простоя.
|
||||
**Метод:** переупорядочивание или планирование инструкций - изменение последовательности исполнения инструкций с целью избегания или сокращения числа тактов простоя.
|
||||
**Статическое планирование** - производится компилятором во время компиляции программы.
|
||||
**Динамическое планирование** - производится CPU во время исполнения программы.
|
Reference in New Issue
Block a user