- •Суперскалярный процессор
- •Типы суперскалярных процессоров
- •Статический суперскалярный процессор
- •Стадия планирования и группировки инструкций.
- •Достоинства и недостатки
- •Модели статический суперскалярных процессоров.
- •Динамический суперскалярный процессор.
- •Что быстрее динамического суперскалярного процессора?
- •Спекулятивный суперскалярный процессор. (ССП)
- •Этапы исполнения инструкции
- •Стадии записи результата и завершения
- •Изменения в аппаратной схеме
- •Схема ССП
- •Описание работы схемы. Этап планирования.
- •Описание работы схемы.
- •Описание работы схемы. Этап завершения.
- •Такт 0
- •Такт 1
- •Такт 2
- •Такт 3
- •Такт 4
- •Такт 5
- •Такт 6
- •Такт 7
- •Такт 8
- •Такт 9
- •Такт 10
- •Такт 11
- •Такт 17
- •Такт 18
- •Такт 19
- •Такт 20
- •Такт 21
- •Такт 22
- •Такт 23
- •Такт 24
- •Такт 59
- •Такт 60
- •Такт 61
- •Что произойдет если будет сгенерировано исключение?
- •Что обеспечивает выполнение критериев корректного исполнения программы?
- •Ограничения спекуляции.
- •Ограничения планирования инструкций условного перехода.
- •Альтернативный подход к ССП Переименование регистров.
- •Особенности переименования регистров.
Такт 18
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
|
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
|
|
|
DIVD |
F10 |
F0 |
F6 |
|
|
|
|
|
|
ADDD |
F6 |
F8 |
F2 |
|
|
|
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
No |
|
|
|
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
MULT |
45(R3) |
#F4 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 19
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
|
|
|
|
|
ADDD |
F6 |
F8 |
F2 |
|
|
|
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
No |
|
|
|
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
Div |
F0 |
F6 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 20
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
20-- |
|
|
|
|
ADDD |
F6 |
F8 |
F2 |
20 |
|
|
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
Yes |
Add |
F8 |
F2 |
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
Div |
F0 |
F6 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 21
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
20-- |
|
|
|
|
ADDD |
F6 |
F8 |
F2 |
20 |
21-- |
|
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
Yes |
Add |
F8 |
F2 |
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
Div |
F0 |
F6 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 22
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
20-- |
|
|
|
|
ADDD |
F6 |
F8 |
F2 |
20 |
21--22 |
|
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
Yes |
Add |
F8 |
F2 |
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
Div |
F0 |
F6 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 23
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
20-- |
|
|
|
|
ADDD |
F6 |
F8 |
F2 |
20 |
21--22 |
23 |
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
Yes |
Add |
F8 |
F2 |
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
Div |
F0 |
F6 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 24
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
20-- |
|
|
|
|
ADDD |
F6 |
F8 |
F2 |
20 |
21--22 |
23 |
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
No |
|
|
|
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
Div |
F0 |
F6 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 59
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
20--59 |
|
|
|
|
ADDD |
F6 |
F8 |
F2 |
20 |
21--22 |
23 |
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
No |
|
|
|
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
Div |
F0 |
F6 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 60
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
20--59 |
60 |
|
|
|
ADDD |
F6 |
F8 |
F2 |
20 |
21--22 |
23 |
|
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
No |
|
|
|
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
Yes |
Div |
F0 |
F6 |
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|
Такт 61
Instruction status |
|
|
Execution |
Write |
|
|
|
||
Instruction |
j |
k |
Issue complete |
Result |
Commit |
Load |
Busy Address |
||
LD |
F6 |
34+ |
R2 |
|
|
|
|
No |
|
1 |
2--3 |
4 |
5 |
1 |
|||||
LD |
F2 |
45+ |
R3 |
|
|
|
|
Load |
No |
1 |
5--6 |
7 |
8 |
2 |
|||||
MULTD |
F0 |
F2 |
F4 |
|
|
|
|
Load |
No |
2 |
8--17 |
18 |
19 |
3 |
|||||
SUBD |
F8 |
F6 |
F2 |
6 |
8--9 |
10 |
19 |
|
|
DIVD |
F10 |
F0 |
F6 |
19 |
20--59 |
60 |
61 |
|
|
ADDD |
F6 |
F8 |
F2 |
20 |
21--22 |
23 |
61 |
RS for |
|
Reservation |
|
|
|
S1 |
S2 |
RS for j |
|
||
Stations |
|
|
|
|
k |
|
|||
|
|
Name Busy |
Op |
Vj |
Vk |
Qj |
Qk |
|
|
|
|
Add1 |
No |
|
|
|
|
|
|
|
|
Add2 |
No |
|
|
|
|
|
|
|
|
Mult1 |
No |
|
|
|
|
|
|
|
|
|
|
Reorder Buffer |
|
|
|
|
|
Clock |
|
|
|
Instr. |
Dst. |
Value |
State |
|
|