The CPU contains multiple MCA banks (typically 5 to 20+ depending on the microarchitecture). Each bank represents a functional unit within the processor:
When an error occurs, the CPU writes error details into the IA32_MCi_STATUS (Machine Check Status) register of the affected bank. If the error is uncorrectable and fatal, the CPU raises the 0x12 exception before executing the next instruction. x64 exception type 0x12 machinecheck exception link
Indirectly – software can cause incorrect bus transactions or uncorrectable ECC by writing bad patterns, but the underlying issue is hardware’s inability to correct the error. A kernel bug cannot “invent” a fake MCE 0x12. Overview — x64 Exception Type 0x12: Machine Check
In the x64 architecture, the Interrupt Descriptor Table (IDT) holds pointers to code that handles specific events (interrupts and exceptions). Bank 0: Data Cache Unit Bank 1: Instruction