What does ‘bank’ing a register mean?

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 …

Read more

How does cpu communicate with peripherals?

In older architectures, peripherals were accessed via a separate mechanism to memory access with special I/O instructions. On x86, there were (and still are!) “in” and “out” instructions for transferring bytes between the CPU and a peripheral. Peripherals were given addresses, for example 0x80 for the keyboard. Simplifying a lot, doing “in 0x80” would read …

Read more