the separation between the computer's public-facing promises and its secret internal workings.
The most important concept to grasp here is the difference between the Instruction Set Architecture (ISA) and the Microarchitecture.
Think of it as the difference between what a processor promises to do versus how it actually does it.

The ISA is the rigid contract between the software and the hardware.
It's the set of attributes a programmer sees and can rely on. It doesn't change often because changing it would break existing software.
The essential things the ISA defines are:
ADD, LDR, JUMP).For example, the ISA guarantees that an ADD instruction exists, but it says nothing about how the addition is performed. (so, basically it abstractifies the detail implementations)