Patent ID: 8418187

Claim:
A data processing apparatus comprising: first processing circuitry for performing data processing operations; second processing circuitry for performing data processing operations; the first processing circuitry being architecturally compatible with the second processing circuitry, such that a workload to be performed by the data processing apparatus can be performed on either the first processing circuitry or the second processing circuitry, said workload comprising at least one application and at least one operating system for running said at least one application; the first processing circuitry being micro-architecturally different from the second processing circuitry, such that performance of the first processing circuitry is different to performance of the second processing circuitry; the first and second processing circuitry being configured such that the workload is performed by one of the first processing circuitry and the second processing circuitry at any point in time; a switch controller, responsive to a transfer stimulus, to perform a handover operation to transfer performance of the workload from source processing circuitry to destination processing circuitry, the source processing circuitry being one of the first processing circuitry and the second processing circuitry, and the destination processing circuitry being the other of the first processing circuitry and the second processing circuitry; the switch controller comprising at least virtualisation software logically separating the at least one operating system from the first processing circuitry and the second processing circuitry, and the switch controller configured, during the handover operation: (i) to cause the source processing circuitry to make its current architectural state available to the destination processing circuitry, the current architectural state being that state not available from shared memory shared between the first and second processing circuitry at a time the handover operation is initiated, and that is necessary for the destination processing circuitry to successfully take over performance of the workload from the source processing circuitry; and (ii) to employ the virtualisation software to mask predetermined processor specific configuration information from said at least one operating system such that the transfer of the workload is transparent to said at least one operating system.