Reset
On path: Exceptions | 1: Exceptions • 2: Reset • 3: System Calls • 4: Software Exceptions • 5: Emulator traps • 6: Memory Fault • 7: Interrupts • 8: Unix Signals |
---|
Depends on | Exceptions |
---|
Reset is the highest priority exception in any system. It is invoked by hardware and will not normally be expected (or even possible) to return. It is used at start-up to get the boot process going; rarely, if ever at other times.
Because very little about the computer system can be assumed when it is first switched on, the reset hardware will usually leave the processor in a well-defined but limited state. Typically:
- The highest privilege level will be set.
- All interrupts will be disabled.
- Memory mapping will be turned off, with a default address pattern implicit (e.g. physical address = virtual address).
- Caches will be disabled (invalidating any cached data).
… and code will be run from an address defined by the particular processor architecture (but will load the operating system if you want one).
It is up to the operating system to initialise these various facilities before they are enabled.
Reset will typically invoke a boot process which will (re)start the system ‘cold’. However in embedded systems (and others) with real time constraints the reset may be a result of a problem (e.g. a watchdog) which requires a recovery process and a ‘warm start’.
Some processor architectures – notably the x86 architecture used in desktop PCs – have a lot of ‘baggage’ associated with backward compatibility. They therefore reset into modes which will emulate earlier editions of the architecture and the boot process may need to alter this before the O.S. boots.