You are on page 1of 51

Проточност

Поглавје 4
Преглед на проточноста

• Проточност: Имплементациска техника при


која повеќе инструкции се преклопуваат
при извршувањето, многу слично како
производствена линија.
• Денес проточноста е речиси универзално
прифатена.
Преглед на проточностите
Преглед на проточностите

• Истите принципи важат и за процесорите.


• МИПС инструкциите имаат пет чекори:
1. Преземи инструкција од меморија.
2. Прочитај ги регистрите додека се декодира
инструкцијата (читањето и декодирањето може се
извршуваат истовремено).
3. Изврши ја операцијата или пресметај ја адресата.
4. Пристапи до операнд во податочната меморија.
5. Запиши го резултатот во регистар.
Едноциклусни наспроти
перформанси со проточност
Едноциклусни наспроти
перформанси со проточност
Дизајнирање на инструкциско
множество за проточност
Проточни конфликти:
• Структурални конфликти
• Податочни конфликти
Пр.
add $s0, $t0, $t1
sub $t2, $s0, $t3
Решение: препраќање или проследување?!
• Контролни конфликти
Податочни конфликти - Препраќање со
две инструкции
• Графичко претставување на инструкциската
проточност

IF за инструкциско преземање на податоците


ID за декодирање на инструкцијата
EX за степенот за извршување АЛУ
МЕМ за степенот за пристап до меморијата
WB за степенот за повторно запишување
Податочни конфликти -
Препраќање со две инструкции
• Графичко претставување на препраќањето
Податочни конфликти -
Препраќање со две инструкции
• Графичко претставување на застој
Контролни конфликти

• Графичко претставување на застој


Проточна податочна патека – патека од
еден циклус
Проточна податочна патека – пет
степена проточност
Податочните патеки се делта во пет
делови со имиња соодветни на степените
на извршената инструкција:
• 1. IF: Преземање инструкција
• 2. ID: Декодирање на инструкцијата и читање на
регистарската датотека
• 3. EX: Извршување или пресметување на
адресата
• 4. MEM: Пристап до податочната меморија
• 5. WB: Запишување назад
Проточна податочна патека -
исклучоци
Исклучоци во проток на инструкции одлево
надесно:
• Степенот за запишување назад, кој резултатот
го сместува назад во регистарската датотека
во средината на податочната патека.
• Изборот на следната вредност на
програмскиот бројач, изборот меѓу
зголемениот програмскиот бројач и адресата
на разгранување од МЕМ степенот.
Проточна податочна патека –
проточно извршување
Проточна верзија на податочната
патека
Првиот проточен степен на една
инструкција
Вториот проточен степен на една
инструкција
Третиот проточен степен на
инструкцијата за полнење
Четвртиот проточен степен на
инструкцијата за полнење
Петтиот проточен степен на
инструкцијата за полнење
Пет проточни степени на
инструкцијата за складирање
• Преземање инструкција
• Декодирање на инструкцијата и читање на
регистарската датотека
• Извршување и пресметување на адресата
• Мемориски пристап
• Запишување назад
Трет проточен степен на инструкцијата
за складирање
Четвртиот проточен степен на
инструкцијата за складирање
Петтиот проточен степен на
инструкцијата за складирање
Исправената проточна податочна
патека што оперира со полнењето
Дел од податочната патека во
инструкцијата за полнење
Дијаграм на проточност со повеќе
такт циклуси за пет инструкции
Традиционален повеќетактен
проточен дијаграм
Дијаграм со еден такт циклус
Контрола на проточноста
Вредности на контролните линии
Поделба на конторлните линии

Контролните линии ги делиме на пет групи


според проточниот степен:
1. Преземање инструкција
2. Декодирање инструкција / читање на
регистарската датотека
3. Извршување / пресметување на адресата
4. Мемориски пристап
5. Запишување назад
Контролните линии за
последните три степени
Проточната податочната патека со
контролните сигнали
Податочни конфликти -
препраќање наспроти застои
Секвенца со повеќе зависности:
sub $2, $1,$3 # Регистарот $2 се запишува со sub
and $12,$2,$5 # Првиот операнд($2) зависи од sub
or $13,$6,$2 # Вториот операнд($2) зависи од sub
add $14,$2,$2 # Првиот ($2) и вториот операнд
($2) зависат од sub
sw $15,100($2) # Основата ($2) зависи од sub
Проточна зависност во секвенца од пет
инструкции
Нотацијата за именување на
полињата на проточните регистри
• Првиот дел од името лево од точката е
името на проточниот регистар; вториот дел
е името на поле од тој регистар.
• Двата пара на конфликтни услови се:
1a. EX/MEM.RegisterRd == ID/EX.RegisterRs
1b. EX/MEM.RegisterRd == ID/EX.RegisterRt
2a. MEM/WB.RegisterRd == ID/EX.RegisterRs
2b. MEM/WB.RegisterRd == ID/EX.RegisterRt
Зависноста помеѓу проточните регистри
и влезовите во АЛУ

EX/MEM MEM/WB

EX/MEM
ID/EX

ID/EX MEM/WB
АЛУ и проточните регистри пред и по
додавањето препраќање

FA=01
FA=10

FB=01
FB=10
Контрола на EX конфликт

if (EX/MEM.RegWrite
and (EX/MEM.RegisterRd ≠ 0
and (EX/MEM.RegisterRd = ID/EX.RegisterRs))
ForwardA = 10
if (EX/MEM.RegWrite
and (EX/MEM.RegisterRd ≠ 0)
and (EX/MEM.RegisterRd = ID/EX.RegisterRt))
ForwardB = 10
Конторла на MEM конфликт

if (MEM/WB.RegWrite
and (MEM/WB.RegisterRd ≠ 0)
and (MEM/WB.RegisterRd = ID/EX.RegisterRs))
ForwardA = 01
if (MEM/WB.RegWrite
and (MEM/WB.RegisterRd ≠ 0)
and (MEM/WB.RegisterRd = ID/EX.RegisterRt))
ForwardB = 01
Контролните вредности за
мултиплексерот
Податочна патека за оперирање со
конфликтите преку препраќање
Податочната патека со додаден 2:1
мултиплексер
Податочни конфликти и застои - проточна
секвенца на инструкции

ID/EX
IF/ID
Податочни конфликти и застои
• Потребна ни е единица за откривање конфликти.
• Таа работи за време на ID степенот, така што
може да вметне застој меѓу полнењето и
неговата употреба.
• Контролата на единицата за откривање
конфликти ќе го има следниот услов:
if (ID/EX.MemRead and
((ID/EX.RegisterRt = IF/ID.RegisterRs) or
(ID/EX.RegisterRt = IF/ID.RegisterRt)))
застои ја проточноста
Начин на кој застоите навистина се
внесуваат во проточноста

MEM/WB

MEM/WB

ID/EX
Преглед на проточната контрола
ГОЛЕМАТА слика
• Иако компајлерот општо му препушта на хардверот да
се соочи со конфликтите и со тоа обезбедува коректно
извршување, компајлерот мора да ја разбере
проточноста за да обезбеди подобри перформанси.
• Неочекуваните застои ќе ги намалат перформансите на
преведениот програмски код.
Материјал за учење

• Овој час ги покрива лекциите 4.5-4.7 од


книгата на Патерсон Хенеси

You might also like