Hi #2, Christophe Avoinne wrote:
To be sure to understand what you mean : - there are two independant register-sets, only one of which you can access.
Yes.
- when executing a CMB switching, you just implicitely select the other set so that old registers can be saved in old CMB context, and we can continue to run code with the new registers without write-back memory delay penalty.
Exactly.
For interrupt, it may be very interesting if we dont need to read the values of registers ( the stack pointer is fixed-address at raising interrupt ? what about the reentrance ? ).
See my other mail.
That can be done en bloc or on-demand, but in either case it should be done automatically.Still I see a problem : we must preload the values of new registers from the new CMB context, especially when switching between tasks. How do you plan that ? have an explicit instruction to reload the new register set ?