Hardware reset


A hardware reset or hard reset of a computer system is a hardware operation that re-initializes the core hardware components of the system, thus ending all current software operations in the system. This is typically, but not always, followed by booting of the system into firmware that re-initializes the rest of the system, and restarts the operating system.
Hardware resets are an essential part of the power-on process, but may also be triggered without power cycling the system by direct user intervention via a physical reset button, watchdog timers, or by software intervention that, as its last action, activates the hardware reset line.
User initiated hard resets can be used to reset the device if the software hangs, crashes, or is otherwise unresponsive. However, data may become corrupted if this occurs. Generally, a hard reset is initiated by pressing a dedicated reset button, or holding a combination of buttons on some mobile devices. Devices may not have a dedicated Reset button, but have the user hold the power button to cut power, which the user can then turn the computer back on. On some systems, pressing and releasing the power button initiates a hard reset, and holding the button turns the system off.

Hardware reset in 80x86 IBM PC

The 8086 microprocessors provide RESET pin that is used to do the hardware reset. When a HIGH is applied to the pin, the CPU immediately stops, and sets the major registers to these values:
RegisterValue
CS 0xFFFF
DS 0x0000
ES 0x0000
SS 0x0000
IP 0x0000

The CPU uses the values of CS and IP registers to find the location of the next instruction to execute. Location of next instruction is calculated using this simple equation:
Location of next instruction = +
This implies that after the hardware reset, the CPU will start execution at the physical address 0xFFFF0. In IBM PC compatible computers, This address maps to BIOS ROM. The memory word at 0xFFFF0 usually contains a JMP instruction that redirects the CPU to execute the initialization code of BIOS. This JMP instruction is absolutely the first instruction executed after the reset.

Hardware reset in later x86 CPUs

Later x86 processors reset the CS and IP registers similarly, refer to Reset vector.