1. 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 and information on progress of said function is discarded if the function is re-started 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 a said start of said function or at a said point at which it was interrupted dependent upon said control parameter, wherein said function processed by said processor may comprise an application, a system software routine, a thread, or multiple processing steps defined by software.