x86 – rodzina architektur (modeli programowych) procesorów firmy Intel, typu CISC. Zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem 8086, który z kolei wywodził się z 8-bitowego układu 8085. Nazwa architektury pochodzi od nazw pierwszych modeli z tego typu, których numery kończyły się liczbą 86. Obecnie architektury x86 dominują na rynku komputerówPC i serwerów[1]. Najszybsze superkomputery korzystają z architektur typu RISC[2].
Rozwój architektury Intel x86
x86
Nazwa x86 w odniesieniu do modelu programowego procesorów dotyczy pierwszych procesorów tego typu – od 8086 do 286, które były układami o architekturze 16-bitowej. Obecnie systemy i oprogramowanie 32-bitowe, często przyjmują oznaczenie x86 (procesory 16-bitowe wyszły z użycia).
Drugie stadium rozwoju typu zapoczątkował w 1985 procesor 80386, w którym dokonano rozszerzenia słowa do 32 bitów, unikając jednak konieczności natychmiastowej wymiany wszystkich komputerów poprzez zachowanie trybów zgodności z poprzednimi rozwiązaniami. Tak zmodyfikowaną architekturę (model programowy) x86 oznacza się zazwyczaj symbolem IA-32 (od Intel Architecture 32 bit) lub x86-32 (często skracając do x86).
Model ten z czasem został rozszerzony o nowe technologie, głównie wspierające zastosowania multimedialne, takie jak MMX czy SSE. Procesory oparte na tym modelu do dziś stanowią większość procesorów używanych w komputerach na świecie.
Trzecim stadium rozwoju procesorów wywodzących się z architektury x86 są procesory 64-bitowe. Architekturę (model programowy) takich procesorów, ze względu na wciąż zachowywaną wsteczną kompatybilność z pierwowzorami o architekturze x86, oznacza się symbolem x86-64. Rozwiązanie to zostało wprowadzone przez firmę Advanced Micro Devices (AMD), a dopiero później zaadaptowane przez Intela jako Intel 64 (wcześniej EM64T). Procesory o architekturze IA-64 nie należą do rodziny x86.
Najważniejsze zmiany w kolejnych generacjach procesorów
Nazwa procesora
Rok
Maks. częstotliwość taktowania (w momencie wprowadzenia, MHz)
układ 16-bitowy; pracował jedynie w trybie rzeczywistym; współpracował z koprocesorem 8087; miał 16-bitową szynę danych (ośmiobitową w wersji „SX”, czyli 8088); nie miał MMU; składał się z dwóch jednostek – współpracy z pamięcią, czyli kolejki oraz wykonawczej; zegar od 4,77 MHz do około 20 MHz (obecnie spotyka się wersje do 300 MHz)
druga generacja układów; procesor wciąż 16-bitowy, o zwiększonej do 24-bitów szynie adresowej; istotnie usprawniona wydajność; nowe rozkazy, nowy tryb pracy – chroniony (wspierający wielozadaniowość); adresowanie 16 MB RAM i 1 GB pamięci wirtualnej; zegar do 25 MHz
trzecia generacja układów i równocześnie największa rewolucja w zakresie architektury x86, procesor 32-bitowy, o poszerzonych rejestrach wewnętrznych, szynie danych i adresowej (do 32 bitów); istotnie usprawniona wydajność; wiele nowych rozkazów; wbudowany MMU; zmieniony tryb chroniony; wprowadzony tryb wirtualny pozwalający obsłużyć do 4 GB pamięci RAM
dodano kilka nowych instrukcji; zwiększono wydajność jednostki stałoprzecinkowej oraz wbudowano i przeprojektowano koprocesor (FPU); dodatkowo wbudowano kontroler i pamięć cache poziomu L1; w modelach X2 i X4 wprowadzono taktowanie wewnętrzne procesora szybsze niż szyn zewnętrznych
powiększono cache L1; zmodernizowano FPU; dodano jednostkę przewidywania skoków; dodano kilka nowych instrukcji; zwiększono zewnętrzną magistralę danych do 64 bitów (procesor pozostał 32-bitowy) oraz szynę adresową do 36 bitów; procesor składa się z dwóch jednostek wykonawczych dość podobnych do 486 i jeżeli 2 kolejne rozkazy nie kolidują ze sobą, to są wykonywane jednocześnie
nowa generacja architektury, nieformalnie oznaczana jako i686; procesor ten był dedykowany pierwotnie do serwerów i wydajnych stacji roboczych, w procesorze tym wprowadzono usprawnienia typu PAE czy VME, z dużą zmianą wewnętrznej struktury układu, pod względem mikroarchitektury układ ma wiele cech procesora RISC (choć zewnętrznie pozostaje zgodny z architekturą CISC); posiada 6 potoków; architektura Pentium Pro jest podstawą procesorów Pentium II i Pentium III; kompletnie zmieniona realizacja wewnętrzna – procesor wewnętrznie działa zupełnie inaczej niż wszystkie poprzednie, stanowiąc pod tym względem pierwszą największą zmianę od czasu 8086; cache L2 wbudowano w procesor jako osobny płatek krzemu zamknięty wraz z procesorem w jednej obudowie; 36 bitów szyny adresowej; 64 bity szyny danych; istotnie zmieniony sposób pracy szyny danych
kompletnie przeprojektowany procesor maksymalizujący technikę potokowości, dzięki czemu możliwe stało się osiąganie bardzo dużych częstotliwości zegara
zmiana architektury x86 o znaczeniu prawie tak wielkim jak pojawienie się 80386; poszerzenie rejestrów do 64 bitów, nowe rejestry, nowe rozkazy, poszerzenie przestrzeni adresowej, nowe tryby pracy; pierwsza istotna zmiana architektury niebędąca autorstwa Intela
MMX – rozszerzenie architektury 80386 wykorzystujące rejestry koprocesora dla instrukcji SIMD, pierwsza istotna zmiana z punktu widzenia software od pojawienia się 80386, stosowany w układach Pentium MMX i późniejszych
SSE, SSE2, SSE3 – rozszerzenie MMX, nowe rejestry dla instrukcji SIMD, wprowadzane sukcesywnie wraz z rozwojem linii Pentium II i III
3DNow! – zaproponowane przez AMD rozszerzenie MMX, stosowane i rozwijane konsekwentnie w procesorach od K6 w górę
8086 i 8088 (wersje do 20 MHz, pierwotnie 4,77 MHz w PC XT, obecnie do 300 MHz)
80186 i 80188 (wersje do 25 MHz, wykorzystywane głównie w urządzeniach automatyki ze względu na zintegrowane: kontroler przerwań, kontroler DMA, liczniki (redukcja liczby układów na płycie głównej), rzadko stosowane w komputerach osobistych, kilka nowych instrukcji, generalnie brak większych różnic programowych w stosunku do 8086)
80286 (wersje do 25 MHz, pierwotnie 8 MHz w PC AT)
80386 (później nazwany 80386DX) i 80386SX (Intel 33 MHz, konkurenci do 40 MHz), obecnie także wersje przemysłowe 80386ZX (do 300 MHz jako kontrolery jednoukładowe)
i486 (później nazywany i486DX) i 486SX oraz układy i486DX2 i iDX4 (Intel i486DX – 50 MHz, i486DX2 – 33/66 MHz, iDX4 – 33/100, konkurenci do 160 MHz)
specjalizowane do zastosowań bez użycia chłodzenia aktywnego np. VIA QuadCore E-Series[6]
KX-7000 ze zintegrowanym GPU zapewniającym rozdzielczość do 4096 × 2304 pikseli przy 60 Hz (przez DisplayPort lub HDMI). Wszystkie chipy VIA Zhaoxin mają być wolne od Meltdown i Spectre[7].
Zhaoxin
Zhaoxin (Shanghai Zhaoxin Semiconductor Co., Ltd.(兆芯, Zhào xīn)) to chiński producent procesorów, produkujący procesory na podstawie licencji spółki utworzonej przez przedsiębiorstwo VIA i administracji Szanghaju. Procesory są wspierane w Linuxie od jądra w wersji 5.3[8].
Procesory piątej generacji, programowo zgodne z i386, sprzedawane jako Nx 5x86
Firmy UMC
Seria układów UMC U5 (szybsze klony 486SX)
Firmy IDT
IDT WinChip
Siemens i Harris
80286 (wersje do 25 MHz)
Porównanie z różnymi architekturami
68000
Według Volkera Werticha, autora między innymi słynnej gry The Settlers, procesory x86 były dużo słabsze niż seria 68K. Zamiast 16 rejestrów było ich zaledwie kilka. Było bardzo mało rozkazów, co sprawiało, że kodowanie na x86 w porównaniu do Amigi było koszmarem (autor przeniósł m.in. grę z Amigi na zgodne z IBM PC). Wersja na Amigę bez problemu wówczas obsługiwała 8000 osadników bez zwolnień w prędkości gry, mimo wymagania zaledwie 68000, jako procesora[9].