Infact, in superscalar processors even though the instructions are executed Out-of-Order
they retire in-order. Meaning, the result of executing an instruction is not committed
until all the instructions which precceded it have retired.
Now if an interrupt occurs, I guess the pipeline is flushed and the interrupt is serviced.
The processor then resumes at the first non committed instruction in the original path. If
it had executed instructions that were beyond this those will have to be re-executed.
Thanks, Rithin.
sajay@temenos.com wrote:
Hi,
In architectures such as Intel x86 architecture Instruction Execution is inorder, ie only when the previous Instruction has completely finish , the next instruction can finish. But in architectures such as SPARC, an instruction can finish execution before another Instruction that was started prior to this Instruction finishes. Supposing an Interrupt occurs in such a scenario, how does the kernel know which instruction to restart. Or is the system rolled back to a state before these two instructions were started and the System is started from there.
Thanks in Advance, Sajay
-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/