ARM이나 MIPS, RISC-V보다 강력한 연산을 제공하는 Instruction set도 있다.
프로그램이 실행하는 명령어의 개수를 줄이는 것에 목표를 두지만, 간결성을 희생한 대가로 얻어지는 것이다.
명령어의 개수를 줄였지만, 명령어 처리 시간이 길어져서 프로그램 실행에 걸리는 시간은 늘어날 위험이 있다.
이렇게 느려지는 이유는 Clock Cycle Time이 길어지거나 필요한 Clock Cycle Count가 더 많아지기 때문이다.
The Intel x86 ISA
ARM과 MIPS는 1985년에 작은 연구팀이 만든 것이다.
이 프로세서의 각 부분은 조화를 잘 이루고 있으며 구조도 아주 간결하다.
그러나, x86은 여러 독립적인 그룹이 40년 이상 꾸준히 발전 시킨 것이다.
Intel은 마치 짐가방에 옷을 욱여넣듯이 원래의 명령어 집합에 새로운 기능을 집어 넣었다.
- 8080 (1974): 8-bit microprocessor
Accumulator, plus 3 index-register pairs - 8086 (1978): 16-bit extension to 8080
Complex instruction set (CISC) - 8087 (1980): floating-point coprocessor
Adds FP instructions and register stack - 80286 (1982): 24-bit addresses, MMU
Segmented memory mapping and protection - 80386 (1985): 32-bit extension (now IA-32)
Additional addressing modes and operations
Paged memory mapping as well as segments - i486 (1989): pipelined, on-chip caches and FPU
Compatible competitors: AMD, Cyrix, … - Pentium (1993): superscalar, 64-bit datapath
Later versions added MMX (Multi-Media eXtension) instructions
The infamous FDIV bug - Pentium Pro (1995), Pentium II (1997)
New microarchitecture (out-of-order execution) (see Colwell, The Pentium Chronicles) - Pentium III (1999)
Added SSE (Streaming SIMD Extensions) and associated registers - Pentium 4 (2001)
New microarchitecture
Added SSE2 instructions - AMD64 (2003): extended architecture to 64 bits
- EM64T – Extended Memory 64 Technology (2004)
AMD64 adopted by Intel (with refinements)
Added SSE3 instructions - Intel Core (2006)
Added SSE4 instructions, virtual machine support - AMD64 (announced 2007): SSE5 instructions
Intel declined to follow, instead… - Advanced Vector Extension (announced 2008)
Longer SSE registers, more instructions