powerpc interrupt processing/JMP instruction

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

powerpc interrupt processing/JMP instruction

1,112 Views
shantanunakhate
Contributor I

Hello,

       When Interrupt occurs during powerpc execution , what does the powerpc do? will it complete the current instruction execution and then jump to ISR or will it suspend the instruction execution , and execute the same instruction after executing ISR?

consider the following instruction under execution  JUMP xxxxx.

so when an interrupt occurs during this instruction execution , does powerpc complete jmp instruction and then go to ISR or it will suspend JMP instruction execute ISR and then

execute JMP instruction again freshly ?

does the case same with move instruction ?

Regards

0 Kudos
6 Replies

642 Views
scottwood
NXP Employee
NXP Employee

The interrupted execution will either be completed or aborted.  Given the pipelined nature of the CPU it doesn't really make sense to talk about being in the middle of a specific instruction when the interrupt comes in -- it's likely that the CPU was in the middle of executing several instructions.  By the time the CPU starts executing at the exception vector, it will have sorted things out such that the interrupted state is consistent and restartable.

One notable situation is when the CPU was executing a guarded load instruction.  Since guarded accesses can't be retried (or else the device would see two accesses, which may have side effects), and a load instruction can't complete until data is returned, if an interrupt happens after a guarded load has gone out on the bus, the CPU will wait for the guarded load to complete before taking the interrupt.

0 Kudos

642 Views
lunminliang
NXP Employee
NXP Employee

This query also relates to MPC8349?

0 Kudos

642 Views
shantanunakhate
Contributor I

Its MPC8343

0 Kudos

642 Views
marius_grigoras
NXP Employee
NXP Employee

Hi,

Please let me know the core and also the interrupt type (program, TLB, system call etc).

Thank you,

Marius

0 Kudos

642 Views
shantanunakhate
Contributor I

MPC8343 and the interrupt would be external interrupt ( GPIO configured as external IRQ)

0 Kudos

642 Views
lunminliang
NXP Employee
NXP Employee

See below technical support comment:

IRQ is a Integrated Programmable Interrupt Controller (IPIC) input. The interrupt sources controlled by the IPIC unit cause exceptions in the processor core (e300 in the MPC834x). The IPIC can assign int, cint and smi signals of the core. Internal interrupt (int) signal is the main interrupt output from the IPIC to the core.

The external interrupt (int), system management interrupt (smi), decrementer interrupt, and critical interrupt (cint) are maskable asynchronous interrupts. When these interrupts occur, their handling is postponed until the next instruction completes execution and until any interrupts associated with that instruction complete execution. If there are no instructions in the execution units, the interrupt is taken immediately upon determination of the correct restart address (for loading SRR0).

More details in Chapter Interrupts and Exceptions of e300 Power Architecture Core Family Reference Manua http://cache.freescale.com/files/32bit/doc/ref_manual/e300coreRM.pdf

0 Kudos