A machine-check exception (MCE) is a type of computer hardware error that occurs when a computer's central processing unit detects an unrecoverable hardware error in the processor itself, the memory, the I/O devices, or on the system bus. On x86 architectures, a machine-check exception is not caused by software. However, on other architectures such as PowerPC, certain software bugs such as invalid memory accesses can cause machine-check exceptions. The error usually occurs due to component failure or the overheating or overclocking of hardware components. Most machine check exceptions halt the operating system and require a restart before users can continue normal operation. Diagnosing the failure can be often difficult because so little information about what caused the problem is captured during the error.