[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kernelnewbies
Subject:    RE: Imprecise Interrupts.
From:       "Dhiman, Gaurav" <Gaurav.Dhiman () ca ! com>
Date:       2004-06-29 15:45:23
Message-ID: 577528CFDFEFA643B3324B88812B57FE03E43B () inhyms21 ! ca ! com
[Download RAW message or body]


Yes, it's the processor which takes care of all this and kernel need not
to worry about it. There is a concept of pipelining in processors, in
Intel this concept was introduced in 8486 processors. In pipelining
multiple instructions are executed at same time. Each instruction is
divided into sub-parts or independent execution units. The for each
machine instruction these execution units are executed in parallel with
some other execution units of other instruction. I think it can be
understood in a better way if you read the section on this topic from
third chapter of "Art of Assemble" book. I am providing the link to it
as follows:

http://webster.cs.ucr.edu/AoA/DOS/ch03/CH03-5.html#HEADING5-4

Regards,
Gaurav


-----Original Message-----
From: kernelnewbies-bounce@nl.linux.org
[mailto:kernelnewbies-bounce@nl.linux.org] On Behalf Of Rithin K Shetty
Sent: Tuesday, June 29, 2004 8:52 PM
To: sajay@temenos.com
Cc: kernelnewbies@nl.linux.org
Subject: Re: Imprecise Interrupts.

    These cases are handled by the processor and the Operating System is

not involved.
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/



--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic