What does 'bank'ing a register mean?

前端 未结 3 818
广开言路
广开言路 2020-12-14 00:54

Reading \'ARM Architecture\' on Wikipedia and found the following statement:

Registers R0-R7 are the same across all CPU modes; they are never banke

相关标签:
3条回答
  • 2020-12-14 01:20

    Register banking refers to providing multiple copies of a register at the same address.

    Taken from section 1.4.6 of the arm docs

    The term is referring to a solution for the problem that not all registers can be seen at once.

    There is a different register bank for each processor mode. The banked registers give rapid context switching for dealing with processor exceptions and privileged operations.

    If your looking for a more theoretical reasoning, I recommend this paper.
    Edit: A much deeper answer than mine is given here

    0 讨论(0)
  • 2020-12-14 01:38

    When the processor enters an exception, the banked registers are switched automatically with another set of these registers.

    Virtually, the exception handler routine doesn't have to save these registers on the stack to prevent them from being clobbered later on (by the exception handler functions). The processor just keeps a safe copy of that set; and will restore the original set on exception return.

    0 讨论(0)
  • 2020-12-14 01:43

    This clip explains it well https://youtu.be/7LqPJGnBPMM?t=1419

    Banked registers are registers which are not needed and accessible by the current execution mode. When the execution mode changes, the registers needed for the new mode will become usable.

    0 讨论(0)
提交回复
热议问题