logo
AOM / Мельник А

5.2.3. Призупинення виконання команди

Найпростішим рішенням для зменшення впливу конфліктів на роботу конвеєра ко­манд при наявності залежності між даними є призупинення виконання команди jна декілька тактів з тим, щоб завершилось виконання команди і, або тієї її фази, яка ви­кликала конфлікт. Відповідно затримається і виконання команд, які йдуть слідом за ко­мандою і.

Розглянемо фрагмент програми, виконання якого вимагає призупинення роботи конвеєра:

LW R1,0(R2)

SUB R4,R1,R5

AND R6,R1,R7

OR R8,R1,R9

Рис. 5.6 ілюструє роботу конвеєра при виконанні поданого вище фрагмента програми.

Тут друга команда SUBпотребує результату виконання першої команди, який з'явля­ється лише на такті 12 (фаза MEM),через що виконання призупиняється (зупинка R-Stall)до завершення вказаного такту. Призупинення конвеєра знижує його ефективність, тому частіше використовують інші шляхи ліквідації впливу залежностей між даними.