Professional Documents
Culture Documents
Поглавје 4
Преглед на проточноста
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
Преглед на проточната контрола
ГОЛЕМАТА слика
• Иако компајлерот општо му препушта на хардверот да
се соочи со конфликтите и со тоа обезбедува коректно
извршување, компајлерот мора да ја разбере
проточноста за да обезбеди подобри перформанси.
• Неочекуваните застои ќе ги намалат перформансите на
преведениот програмски код.
Материјал за учење