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

43 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#### Пример разворачивания цикла.
```assembly
for (i = 1000; i>0; i = i-1)
x[i]= x[i] + s;
Без оптимизации:
Loop: LD [R1], F0 1
простой 2
ADD F2, F0, F4 3
простой 4
простой 5
ST F4, [R1] 6
ADD R1, R3, R1 7
простой 8
BNE R1, R2, Loop 9
простой 10
```
- 4 копии цикла развернуты без повторного использования регистров.
- Размер базового блока увеличен с 5 до 14 инструкций.
- 3 перехода и 3 уменьшения R1 удалены.
- Адреса загрузки и сохранения изменены.
- 7 тактов для исходной итерации.
Разворачивание цикла сразу с оптимизацией:
| Loop: | LD [R1], F0 | 1 |
| :--: | :--: | :--: |
| | LD [R1-8], F6 | 2 |
| | LD [R1-16], F10 | 3 |
| | LD [R1-24], F14 | 4 |
| | ADD F2, F0, F4 | 5 |
| | ADD F2, F6, F8 | 6 |
| | ADD F2, F10, F12 | 7 |
| | ADD F2, F14, F16 | 8 |
| | ST F4, [R1] | 9 |
| | ST F8, [R1-8] | 10 |
| | ADD R1, R3, R1; | R3 -=32; 11 |
| | ST F12, [R1+16] | 12 |
| | BNE R1, R2, Loop | 13 |
| | ST F16, [R1+8]; | 8-32 = -24 |
Время итерации цикла сократилось до 14 тактов или $\frac{14}{4}=3.5$ для исходной итерации; Ускорение $\frac{6}{3.5}=1.7$