Patent ID: 7539853

Claim:
A method of processing data comprising: processing a function using a processor operable to perform a plurality of functions, said processor having interrupts enabled; receiving an interrupt at said processor during processing of said function at a point at which a portion of said function has been processed; suspending processing of said function; accessing at least one control parameter, said at least one control parameter indicating whether processing of said function should be resumed from a point where it was interrupted or whether said function should be repeated from a start of said function following said interrupt such that said portion of said function that has already been processed is processed again; following completion of said interrupt continuing processing of said function either at said start of said function or at said point at which it was interrupted dependent upon said control parameter; and controlling said processor to store a restart address at which said processor should continue processing in dependence upon said at least one control parameter, wherein said step of controlling said processor to store a restart address at which said processor should continue processing is dependent upon both said at least one control parameter and said further control parameter, said restart address being said start of said function if said control parameter indicates that said function is to be repeated and said further control parameter indicates said function to have idempotence or an address of said fix-up routine to be performed before said function is restarted if said further control parameter indicates said function not to have idempotence, wherein if said at least one control parameter indicates that said function is to be repeated following said interrupt said method comprises an additional step of: accessing a further control parameter, said further control parameter being indicative of whether said function has idempotence or not; and following completion of said interrupt continuing processing of said function at a start of said function if said further control parameter indicates said function to have idempotence, or a fix-up routine to be performed before said function is restarted if said control parameter indicates said function not to have idempotence.