Architecture versus Implementation
Where architecture tells
what happens, implementation tellshow it is made to happen.G A Blaauw
Consider, for example, Intel's IA32 instruction set (also known as the x86-32 instruction set). That external specification was first implemented in 1986. Three decades later, it was still the core instruction set for most 32-bit microprocessors from Intel and AMD, and it was the starting point for AMD's x86-64 extension, which is the core instruction set for most of the 64-bit microprocessors used in laptops and personal computers.
There have been many different implementations of the IA32
architecture. Intel alone has manufactured the 80386DX,
80386SX, 80876, 80386SL, 80386EX, 80486DX, 80486XS, 80486DX2,
80486SL, 80486DX4, Pentium P5, P54, P54CS, P55C, Pentium Pro,
Pentium II Klamath, Deschutes, Xeon, Celeron Covington,
Mendocino, Coppermine, Tualatin, Pentium III Katmai, Coppermine,
Tualatin, Pentium III Xeon, Pentium 4, Pentium M Banias, Dothan,
Celeron M Banias, Dothan, Yonah, Intel Core Duo, Intel Core Solo,
Dual-Core Xeon LV, Pentium, Xeon, Mobile Pentium 4-M, Pentium 4
EE, Pentium 4E, Pentium 4F, and so on.
These microprocessors span almost 20 years of design,
and are
As far as most programmers are concerned, those microprocessors are interchangeable parts.
That degree of compatibility over time would not have been possible without a stable external specification of the IA32 architecture.
On the other hand, the IA32 architecture is not the world's best example of conceptual integrity, simplicity, straightforwardness, or consistency.