Bus error

In modern use on most architectures these are much rarer than segmentation faults, which occur primarily due to memory access violations: problems in the logical address or permissions.

There are at least three main causes of bus errors: Software instructs the CPU to read or write a specific physical memory address.

If no other hardware responds, the CPU raises an exception, stating that the requested physical address is unrecognized by the whole computer system.

Trying to access an undefined virtual memory address is generally considered to be a segmentation fault rather than a bus error, though if the MMU is separate, the processor cannot tell the difference.

Unlike bytes, larger units can span two aligned addresses and would thus require more than one fetch on the data bus.

It is possible for CPUs to support this, but this functionality is rarely required directly at the machine code level, thus CPU designers normally avoid implementing it and instead issue bus errors for unaligned memory access.