Reset: Difference between revisions
![]() ![]() ![]() m (1 revision imported) |
![]() ![]() ![]() m (1 revision imported) |
||
(One intermediate revision by one other user not shown) | |||
Line 5: | Line 5: | ||
Reset is the highest priority [[exceptions | exception]] in any system. It is invoked by hardware and will not normally be expected (or even possible) to <em>return</em>. It is used at start-up to get the <strong>boot</strong> process going; rarely, if ever at other times. | Reset is the highest priority [[exceptions | exception]] in any system. It is invoked by hardware and will not normally be expected (or even possible) to <em>return</em>. It is used at start-up to get the <strong>boot</strong> process going; rarely, if ever at other times. | ||
Because very little about the computer system can be assumed when it | 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: | ||
is first switched on, the reset hardware will usually leave the | |||
processor in a well-defined but limited state. Typically: | |||
*The highest [[Processor_Privilege|privilege level]] will be set. | *The highest [[Processor_Privilege|privilege level]] will be set. | ||
Line 14: | Line 12: | ||
*[[Cache|Caches]] will be disabled (invalidating any cached data). | *[[Cache|Caches]] will be disabled (invalidating any cached data). | ||
… and code will be run from an address defined by the particular | … and code will be run from an address defined by the particular processor architecture (but will load the operating system if you want one). | ||
processor architecture (but will load the operating system if you want | |||
one). | |||
It is up to the operating system to <strong>initialise</strong> these various | It is up to the operating system to <strong>initialise</strong> these various facilities before they are enabled. | ||
facilities before they are enabled. | |||
Reset will typically invoke a [[boot]] process which will | Reset will typically invoke a [[boot]] process which will <strong>(re)start the system</strong> ‘<em>cold</em>’. However in embedded systems (and others) with [[Real_Time|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’. | ||
<strong>(re)start the system</strong> ‘<em>cold</em>’. However in embedded | |||
systems (and others) with [[Real_Time|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’. | |||
<blockquote> | <blockquote> | ||
Some processor architectures – notably the x86 architecture used in | Some processor architectures – notably the x86 architecture used in desktop PCs – have a lot of ‘baggage’ associated with | ||
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. | ||
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. | |||
</blockquote> | </blockquote> | ||
---- | ---- | ||
{{PageGraph}} | {{PageGraph}} | ||
{{Category|Exceptions}} | {{Category|Exceptions}} | ||
{{Category|User}} | {{Category|User}} |
Latest revision as of 10:03, 5 August 2019
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.