Предположим, что 5-ступенчатая конвейерная архитектура (IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Доступ к памяти, WB = Регистрация записи). Есть 4 команды, которые необходимо выполнить.
(Эта примерная инструкция неточна, но я считаю, что точка будет понята)
В пятом такте, эта инструкция будет в трубопроводе, как показано ниже.
Добавьте a, b, c [IF ID EX MEM WB]
Добавить a, b, d [IF ID EX MEM]
Добавьте a, b, e [IF ID EX]
Добавьте a, b, f [IF ID]
Теперь, если происходят аппаратные прерывания, что происходит с этими инструкциями. Будет ли обрабатываться прерывание только после выполнения всех инструкций в конвейере? Будут ли обрабатываться прерывания и исключения программного обеспечения по-другому?