Saturday, 14 September 2013

Hypervisor dreams - or what you can do with 64 bits

Long ago, in a processor far away, there were two parallel sets of registers.  By the magic of EXX, you could hide the current register set in a safe place, and work using another set.
I haven't looked at an ARM instruction set recently, but I expect there's something similar.  Probably working by switching the high and low 32 bits of a register around.  So each 64 bit register becomes a set of two, 32-bit registers.
So what could be achieved by doing this?
In the old days you could do interrupt processing.  When an interrupt happens, the current working registers are switched out, the interrupt is processed, and the registers switched back.
Or you could run two 32-bit apps at once by switching between 32-bit register "sets".
Or the OS could use one register set, and the app another.  Now that would be useful.  Is this what Apple are doing in iOS7?
These are variations on a hypervisor theme.
They are deep mysteries, the answers to which even iOS developers are not privy.

No comments:

Post a Comment