Swapping the register set has always been a concern, for various reasons... but yes, mainly because speed.
Some architectures have windowed registers (SPARC has one kind, TMS9900 has a different one). This creates some kinds of issues or others.
Some have two or more banks (DSP often have two sets for almost instant IRQ handling).
Some just prefer the slow way, or even microcoded operations.
Some just don't bother and let the tedious IRQ work be done by smaller, nimbler but better adapted companion processors : the recent ARM "big/little" and "little/big" approach, or simply the CDC6600/CDC7600 PP (Peripheral Processors) delegate the tedious tasks and concentrate on the hard work (thus simplifying the main CPU btw)
F-CPU's FC0 introduced the SRB system : the "Smooth Register Backup" spies on the register set and performs the transition in the background. But it's still not ideal.
Traps are annoying as well, but context switches also occur when sending data to a different process : this is actually the real speedbump if you listen to the microkernel people. Then, different mitigation systems are required...
But overall, don't focus too much on this because CPU waste so much time in so many different things !!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.