Индустрия программирования


Работа суперскалярного конвейера
































Тип команды Ступень конвейера
Целочисленная команда IFIDEX MEMWB
ПТ командаIFID EXMEMWB
Целочисленная команда IFID EXMEMWB
ПТ команда
IF IDEXMEM WB
Целочисленная команда IFID EXMEMWB
ПТ команда
IFID EXMEMWB
Целочисленная команда IFID EXMEMWB
ПТ команда
IFID EXMEMWB

Пример цикла:

Loop: LD F0,0(R1) ;F0=элемент
вектора

ADDD F4,F0,F2 ;добавление
скалярной величины из F2

SD 0(R1),F4 ;запись
результата

SUBI R1,R1,#8 ;декрементирование
указателя

;8 байт
на двойное слово

BNEZ R1,Loop ;переход
R1!=нулю
Оптимизированная программа после 5-кратного
разворачивания цикла:




Целочисленная командаКоманда ПТ
Номер такта
Loop: LD F0,0(R1)

LD F8,-8(R1)

LD F10,-16(R1)

LD F14,-24(R1)

LD F18,-32(R1)

SD 0(R1),F4

SD -8(R1),F8

SD -16(R1),F12

SD -24(R1),F16

SUBI R1,R1,#40

BNEZ R1,Loop

SD -32(R1),F20
ADDD F4,F0,F2
ADDD F8,F6,F2
ADDD F12,F10,F2
ADDD F16,F14,F2
ADDD F20,F18,F2
1
2
3
4
5
6
7
8
9
10
11
12

Скорость работы цикла: 2.4 такта на элемент



Начало  Назад  Вперед



Книжный магазин