Patent ID: 9075621
Filing Date: 2015-07-07
Classification: G06F

Abstract:
1. A data processing apparatus comprising: an execution pipeline configured to execute instructions in a sequence of pipelined execution stages; an error detection unit configured to generate a first sample of a signal associated with execution of an instruction in said execution pipeline, configured to generate a second sample of said signal after a delay period, and configured to generate an error signal associated with said instruction if said first sample and said second sample differ; an exception storage unit configured to maintain an age-ordered list of entries corresponding to instructions issued to said execution pipeline for execution, each entry initially defined as pending, said exception storage unit configured to store in association with each entry an error marker if said error signal has been generated in association with the instruction corresponding to that entry, said exception storage unit configured to mark an entry as non-pending when said execution pipeline indicates that an instruction associated with said entry has completed execution without said error signal being generated in association therewith, and said exception storage unit configured to sequentially retire oldest non-pending entries from said list; a timer unit configured to be responsive to generation of said error signal to initiate timing of a predetermined time period; an error recovery unit configured to cause a soft flush procedure to be carried out if an oldest pending entry in said list has said error marker stored in association therewith, said soft flush procedure comprising removing all pending entries from said list, cancelling execution in said pipelined execution stages of instructions corresponding to said pending entries, cancelling said timing of said predetermined time period and restarting execution of said instructions at an instruction corresponding to said oldest pending entry; and said error recovery unit configured to cause a hard flush procedure to be carried out if said predetermined time period elapses, said hard flush procedure comprising removing all entries from said list, resetting said pipeline to a predetermined state and restarting execution of said instructions at an instruction corresponding to an oldest entry in said list.