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