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

         

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





Тип команды Ступень конвейера
Целочисленная команда 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 такта на элемент



Содержание раздела