I was wondering if someone can explain to me what CPU virtualization means from the perspective of inside of a CPU.
I mean, If I have a single core how I virtualized it?
What parts and functions of a CPU I have to know (registers, MMU) for achieving this CPU virtualization function?
Is there any "general" programming code that does this?

Also, I wil try to explain it as much better I can, I want to "play", understand and descover the "state" of a CPU (state of registers),
to be more specific, of an ARM CPU (any model). Can somebody guide me how I can do this? Do I have to buy a microcontroller?

Many thanks!