Przejdź do zawartości

Asembler x86/Wstęp

Z Wikibooks, biblioteki wolnych podręczników.

Procesory z rodziny IA-32 (zwanej też 80x86 lub krócej x86) na dobre rozgościły się w komputerach domowych. Nie może to być zaskoczeniem - procesory x86 projektowane są jako tanie i stosunkowo wydajne urządzenia, co przy dobrej dokumentacji dało taki a nie inny rezultat. Jednak pomimo zasięgu swego występowania, dość duża część ich użytkowników nie zdaje sobie sprawy, jak one działają. Niniejszy podręcznik adresowany jest zarówno dla osób chcących się uczyć programowania w języku asemblera, jak i dla wszystkich, którzy chcą zrozumieć, jak działa przeciętny pecet. Zanim zaczniemy kodować dobrze jest poznać nasze nowe środowisko pracy. Dlatego najpierw zaczniemy od uproszczonej historii najsłynniejszej rodziny procesorów.


Intel

[edytuj]

8086

[edytuj]
Mikroprocesor 8086, protoplasta serii X86
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1978
Rok zakończenia produkcji 1990
Producent Intel
Minimalne taktowanie 5 MHz
Maksymalne taktowanie 10 MHz

Pierwszym procesorem z linii 80x86 był 8086. Jego ekspansję bardzo ułatwiła współpraca jego producenta - firmy Intel z firmą IBM - głównym producentem PC-tów. 8086 był 16-bitowym procesorem, z 20-bitową przestrzenią adresową. Oznacza to, że mógł zaadresować maksymalnie 1 MB pamięci RAM. Nie było to dużo, lecz w ówczesnych czasach wystarczało do wszystkiego. Przestrzeń adresowa dla urządzeń wejścia/wyjścia była 16-bitowa, zatem mikroprocesor ten mógł zaadresować do 65 536 portów (216 = 65536). Pracował w trybie rzeczywistym oraz wyposażony był w segmentację pamięci. Oprócz tego, procesor nie umożliwiał praktycznie żadnej, sprzętowej ochrony pamięci, zaś jego wczesne technologie wstępnego pobierania rozkazów i ich dekodowania były nastawione na przyspieszenie pracy rozkazów o operandach umieszczonych w rejestrach lub bezpośrednich. Rozkazy wykorzystujące operandy w pamięci były znacznie wolniejsze (na szczęście 4 lata później, ten problem z wydajnością został naprawiony przy mikroprocesorach 80186 i 80286).

80186

[edytuj]
Mikroprocesor 80186
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1982
Rok zakończenia produkcji produkowany do dzisiaj (wersja CMOS)
Producent Intel
Minimalne taktowanie 6 MHz
Maksymalne taktowanie 12 MHz

Ten procesor nie był wielką rewolucją w porównaniu do 8086. Główne cechy to zwiększona wydajność zarówno w taktowaniu jak i dekodowaniu rozkazów. Mimo wszystko został wyposażony w takie elementy jak: kontroler DMA, różnego rodzaju zegary (ang. timers), kontroler przerwań, odswieżanie pamięci i oszczędzanie poboru mocy. Ciekawostką jest fakt, że z nielicznymi wyjątkami ten układ nigdy nie został użyty do budowy komputerów PC. Wykorzystany był niemal wyłącznie jako mikroprocesor urządzeń wbudowanych, gdzie występuje do dziś.

80286

[edytuj]
Mikroprocesor 80286
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1982
Rok zakończenia produkcji 1990
Producent Intel, AMD, Harris Corporation, Siemens AG
Minimalne taktowanie 6 MHz
Maksymalne taktowanie 25 MHz

Następnym procesorem w serii był 80286. Nadal procesor 16-bitowy, jednak miał spore zmiany. Szyna adresowa została rozszerzona do 24 linii ( czyli de facto przestrzeń adresowa była 24-bitowa). Wskutek tej zmiany procesor mógł zaadresować do 16 MB pamięci. Nowy model miał też kilka nowych rozkazów, niektóre spośród tych instrukcji umożliwiały "zapisywanie" stanu rejestrów, dzięki czemu procesor mógł przerwać wykonywanie jednego programu, zapisać w jakim miejscu program został zatrzymany i kontynuować pracę z innym programem. Odpowiednie instrukcje w stosunku do 8086 były wykonywane niemal dwukrotnie szybciej. Specjalne tryby adresowania - takie jak bazowo-indeksowe - były wykonywanie znacznie szybciej niż na poprzednikach dzięki specjalnym obwodom, zaprojektowanym właśnie dla 80286 (przykładowo 8086 takie samo adresowanie wykonywał przy pomocy jednostki arytmetyczno-logicznej która dosłownie "pochłaniała" sporo cykli procesora). Zastosowanie 80286 było zupełnie inne niż jego poprzednika - ten układ był szeroko rozpowszechniony w komputerach klasy IBM PC.

80386

[edytuj]
Mikroprocesor 80386 DX
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1986
Rok zakończenia produkcji październik 2007
Producent Intel, AMD, IBM
Minimalne taktowanie 16 MHz
Maksymalne taktowanie 40 MHz

W procesorze 386 nastąpiła mała rewolucja. Był to pierwszy, w pełni 32-bitowy procesor Intela do zastosowań domowych.Zaprojektowany był z myślą o systemach operacyjnych obsługujących wiele użytkowników naraz oraz wiele równoległych programów. Właśnie ten procesor jako pierwszy zapoczątkował nowy, płaski model pamięci, oraz wprowadził 3 tryby pracy: chroniony, rzeczywisty i zupełnie nowy w celu kompatybilności wstecznej - wirtualny. Od momentu jego powstania zaczęło się mówić o linii i386, zaś następne implementacje miały na celu ciągłe zwiększenie szybkości wykonywanych rozkazów. W niektórych źródłach można się natknąć na określenie generacji P3, co oznacza właśnie nową podrodzinę i386. Z punktu widzenia technicznego nowy mikroprocesor miał 32-bitową magistralę adresową, co umożliwia zaadresowanie do 4 GB pamięci. Wszystkie rejestry ogólnego przeznaczenia zostały rozszerzone do 32-bitów, a sam procesor wyposażono w osobne rejestry wspomagające debugowanie (co było zupełną nowością). Dzięki nowemu modelowi pamięci oraz jednostki stronicującej swoją "premierę" miała pamięć wirtualna umożliwiająca wykonywanie wielu zadań na raz oraz na adresowanie i używanie większej ilości pamięci niż komputer w istocie miał. Krótko po wydaniu 80386 pojawiły się jego podwersje, w związku z tym przemianowano go na 80386DX aby uniknąć nieporozumień. Oto i warianty tego układu:

  • i386SX - tańszy model, który posiadał 16-bitową magistralę danych, której układ przypominał tą z 8086. W ten sposób zredukowano koszty produkcji. Co dziwniejsze SX posiadał 32-bitową magistralę adresową, jednak tylko 24 piny były podpięte ograniczając limit pamięci do 16 MB (na wzór Motoroli 68000). Zarówno dla wersji DX jak i SX był dostępny zewnętrzny układ, odpowiednio i387DX i i387SX, czyli po prostu koprocesor.
  • i386SL - ten wariant był stworzony z myślą o oszczędności energii dla laptopów. Ten model oferował także czwarty tryb pracy procesora: SMM (ang. System Management Mode), pozwalający na "usypianie" laptopa czy hibernację.

80486

[edytuj]
Mikroprocesor 80486
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1989
Rok zakończenia produkcji 2007
Producent Intel, IBM
Minimalne taktowanie 16 MHz
Maksymalne taktowanie 50 MHz

Pierwszy model w rodzinie 32-bitowych procesorów, który przekroczył 1 milion tranzystorów. 80486 w pełni wykorzystywał tzw. potoki (ang. pipelines). Polegało to na równoległej pracy różnych podukładów mikroprocesora w celu zwiększenia wydajności (analogicznie jak praca taśmy produkcyjnej w przedsiębiorstwie motoryzacyjnym - wiele czynności wykonywanych równolegle w tym samym czasie). Procesor 80486 był w pełni kompatybilny binarnie z swoimi poprzednikami oraz jako pierwszy w historii miał wbudowany koprocesor (FPU). Oczywiście Intel wydał kilka wersji tego samego procesora:

  • i486DX - zwany po prostu i486, posiadał wbudowane FPU.
  • i486SX - wariant bez koprocesora (albo go nie posiadał, albo był on wyłączony).
  • i486DX2 - ten model posiadał wbudowany zegar procesora bijący dwukrotnie szybciej niż w i486DX.
  • i486SX2 - tym czym dla i486DX był i486SX, tym właśnie dla i486DX2 jest i486SX2. Uboższa wersja nieposiadająca FPU.
  • i486SL - energooszczędna wersja, zredukowano w niej pobór mocy.

Intel Pentium

[edytuj]

Pentium I

[edytuj]
Procesor Pentium I
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1993
Rok zakończenia produkcji 1999
Producent Intel
Minimalne taktowanie 30 MHz
Maksymalne taktowanie 300 MHz

Ten procesor rozpoczął następną generację zwaną też P5. Nazwa Pentium wzięła się od połączenia greckiego słowa pente (πέντε), co oznacza 'pięć' wraz z łacińską końcówką "-ium". Konwencja nazywania cyframi nowych układów zakończyła się na i486. Mimo wszystko, nadal funkcjonuje pojęcie i586, które jest jednak nieoficjalne. Głównymi ulepszeniami były superskalarność (jest to cecha mikroprocesorów oznaczająca możliwość ukończenia kilku instrukcji na raz w pojedynczym cyklu zegara), technologia SIMD oraz 64-bitowa magistrala danych. Co więcej Pentium I oferował ponad dwukrotnie większą wydajność niż i486.

Pentium II

[edytuj]
Procesor Pentium II. Po lewej stronie jest rdzeń, po prawej pamięć cache.
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1997
Rok zakończenia produkcji 1999
Producent Intel
Minimalne taktowanie 233 MHz
Maksymalne taktowanie 450 MHz

Tak jak i poprzednik zarówno i ten model wyznaczył nową gałąź produktów Intela, zwaną P6. Zawierał już 7.5 miliona tranzystorów oraz miał swoje dwie odmiany: niskobudżetowego Celerona, nastawionego głównie na stacje robocze oraz wydajnego Xeona stworzonego z myślą o serwerach. W stosunku do Pentium I nie zawierał dość istotnych usprawnień. Zmieniono jedynie sposób mocowania procesora do płyty głównej oraz rozbudowano pamięć cache.

Pentium III

[edytuj]
Pentium III
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1999
Rok zakończenia produkcji 2003
Producent Intel
Minimalne taktowanie 450 MHz
Maksymalne taktowanie 1.4 GHz

Pentium III należał do szóstej generacji procesorów Intela (P6). Najbardziej znaczącą zmianą było dodanie technologii SSE, która umożliwiała jednoczesne operacje na dużej ilość danych zmiennoprzecinkowych (głównie wykorzystywane w grafice 3D). Również i ten procesor miał swoich kuzynów: Celerona i Xeona o tych samych właściwościach co Pentium II. Nowy układ był pierwszym w historii, który przekroczył prędkość 1 GFLOPS (czyli wykonywał 1 miliard operacji na liczbach rzeczywistych w ciągu 1 sekundy) teoretycznie potrafił także osiągnąć 2 GFLOPS. Własnie ten model został "bazą" dla dalszych badań nad procesorem Pentium w wersji dla laptopów.

Pentium M

[edytuj]
Plik:PentiumM.JPG
Pentium M
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 2003
Rok zakończenia produkcji 2008
Producent Intel
Minimalne taktowanie 900 MHz
Maksymalne taktowanie 2.26 GHz

Literka "M" w nazwie wzięła się od słowa "mobilny" (ang. mobile). Był to procesor wykonany wyłącznie dla komputerów przenośnych, stanowiący podstawę dla nowej platformy - Intel Centrino. Początkowo posiadał nowość w postaci SSE2, końcowe modele był już z kolei dwurdzeniowe. Także i ten model należy do rodziny P6. Pentium M potrafił pracować z częstotliwością jak Pentium 4 w wersji mobilnej przy niejednokrotnie dużo niższym poborze mocy.

Pentium 4

[edytuj]
Plik:Pentium4ds.jpg
Pentium 4
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 2000
Rok zakończenia produkcji 2008
Producent Intel
Minimalne taktowanie 1.3 GHz
Maksymalne taktowanie 3.8 GHz

Od tego procesora Intel zmienił całkowicie postępowanie przy rozbudowie procesorów. Projektanci założyli (na wzór AMD), że częstotliwość taktowania zegara to nie wszystko. Od teraz polegali głównie na potokowości, dbano o wykonywaniu jak największej liczby instrukcji w danej jednostce czasu. Nową linię produkcyjną nazwali NetBurst (potocznie dla zachowania schematu - P7). Dodano technologie SSE2 oraz SSE3, które były niezastąpione przy obróbce multimediów. Wielką nowością, niemal rewolucyjną w świecie procesorów Intela było wsparcie architektury EMT64, czyli niektóre modele Pentium 4 były już w pełni 64-bitowe (niemniej potrafiły nadal wykonywać 32-bitowy kod). Wprowadzono także wielowątkowość zwaną Hyper-threading Technology (HTT).

AMD

[edytuj]

Am286

[edytuj]
Mikroprocesor Am286
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1982
Rok zakończenia produkcji 1990 (pod koniec wyłącznie dla urządzeń wbudowanych)
Producent AMD na licencji Intel
Minimalne taktowanie 8 MHz
Maksymalne taktowanie 25 MHz

Procesor ten był identycznym klonem i286. Posiada wszystkie cechy kompatybilne z 80286 przy niewielkich zmianach taktowania zegara. Produkowany na podstawie umowy licencyjnej z firmą Intel. W praktyce procesor ten sam co i286.

Am386

[edytuj]
Mikroprocesor Am386DX-40
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1991
Rok zakończenia produkcji produkowany do dzisiaj (tylko dla urządzeń wbudowanych)
Producent AMD
Minimalne taktowanie 40 MHz
Maksymalne taktowanie 40 MHz

Początkowo firma Intel miała monopol na procesory z serii i386 jednak w 1991 roku korporacja AMD wypuściła swój procesor o nazwie Am386. Był to mikroprocesor w 100 % kompatybilny z 80386 firmy Intel. Umowa handlowa podpisana między obiema firmami dotyczyła procesorów 80286 jednak AMD zinterpretował ją na swój sposób w związku z czym został pozwany do sądu. Rozprawa zakończyła się zwycięstwem AMD nad Intelem i od tego momentu Am386 jest pełnoprawnym, legalnym procesorem stanowiącym poważną alternatywę dla układów Intela, tym bardziej, że sprzedawane były w znacznie niższych cenach. To umocniło pozycję AMD na rynku czyniąc go najwiekszą konkurencją "procesorowego giganta". Co więcej Am386 był nawet kompatybilny z 80486 dorównując mu również prędkością, niestety tylko w obliczeniach na liczbach całkowitych gdyż wówczas nic nie było w stanie pokonać wbudowanego koprocesora i487.

Am486

[edytuj]
Mikroprocesor Am486DX-40
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1990
Rok zakończenia produkcji 1995
Producent AMD
Minimalne taktowanie 25 MHz
Maksymalne taktowanie 120 MHz

Am486 był przykładem zaciętej, ekonomicznej "wojny" z firmą Intel. Bazowany na układzie i486, produkt AMD oferował ponad 20 % większą wydajność, zaś chip Am486 z taktowaniem 40 MHz był tańszy niż 80486 przy częstotliwości 33 MHz, co stanowi niezwykle atrakcyjną alternatywę z punktu widzenia klienta. Dalsze procesory z serii Am486 pobierały prąd o napięciu 3.3V zaś procesory Intela 5V. Procesor Am486 miał dość sporo swoich modeli takich jak: Am486 DX , Am486 DX2 , Am486 DX4, Am486 SX, Am486 SX2, zaś na końcu nazwy znajdowała się cyfra stanowiąca taktowanie zegara, na przykład Am486DX2-80.

AMD K5

[edytuj]
Mikroprocesor AMD-K5
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1996 (choć zaprojektowany w 1995)
Rok zakończenia produkcji 1997
Producent AMD
Minimalne taktowanie 75 MHz
Maksymalne taktowanie 133 MHz

Począwszy od AMD-K5 firma AMD rozpoczęła produkcję własnych procesorów, opartych na własnych technologiach i rozwiązaniach, bez wzorowania się na serii 80x86. Ten procesor został zbudowany z myślą o stanowienia konkurencji dla rodziny Pentium. Pod względem podejścia technicznego K5 przypominał bardziej Pentium Pro, niemniej końcowy produkt miał mimo wszystko wydajność zbliżoną do Pentiuma. K5 posiadał 4.3 mln tranzystorów, 5 jednostek do obliczeń na liczbach całkowitych oraz wbudowany FPU. Wydajność koprocesora w porównaniu do jednostki zmiennoprzecinkowej Pentium było ok 10 % gorsza. Z racji tego, że Intel wprowadził techologię MMX dopiero w 1997 roku, K5 nie posiadał instrukcji wspierających ją. Jak większość procesorów K5 posiadał swoje podmodele - SSA/5 oraz 5k86. Niestety pomimo wszelkich starań inżynierów AMD procesor K5 był generalnie mniej wydajny niż Pentium, zatem nie zagościł na dobre na komputerach stacjonarnych.

AMD-K6

[edytuj]
Mikroprocesor AMD-K6
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1997
Rok zakończenia produkcji 1997
Producent AMD
Minimalne taktowanie 166 MHz
Maksymalne taktowanie 300 MHz

Procesor K6 tak jak swój poprzednik został zaprojektowany jako konkurent dla klasy Pentium. W tym przypadku dla szczególnego modelu jakim był Pentium II, jednak po niższej cenie. Z perspektywy technologicznej K6 posiadał nie tylko wsparcie dla MMX ale także zupełnie nowatorską, zwaną 3DNow!. O ile MMX pracowało na liczbach całkowitych, o tyle 3DNow! na liczbach zmiennoprzecinkowych, co było szczególnie przydatne w grafice 3D jak i obróbce audio/wideo. Mimo, że K6 posiadał bardzo niskie napięcie i wysoki mnożnik (wskutek czego nie był w pełni kompatybilny z niektórymi płytami głównymi) to jego efektywność pozytywnie zaskoczyła konsumentów. Produkty AMD stały się od modelu K6 poważnymi konkurentami dla procesorów firmy Intel, prezentując wysoką jakość przy niższych kosztach produkcji.

Athlon

[edytuj]
Mikroprocesor Athlon
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 1999
Rok zakończenia produkcji 2005
Producent AMD
Minimalne taktowanie 500 MHz
Maksymalne taktowanie 2.3 GHz

Athlon był procesorem z tak zwanej siódmej generacji, nazwa kodowa tej architektury to K7. Nazwa wzięła się z starożytnego języka greckiego, od słowa Decathlon (podobnie jak Pentium). Oprócz klasycznego zwiększania wydajności oraz tradycyjnego dla AMD modyfikowania dekodera rozkazów Athlon oferował wsparcie nie tylko dla 3DNow! ale i dla intelowskiego SSE, choć nie był z nim w pełni kompatybilny. Także FPU został rewolucjonizowany. Do tej pory koprocesor był wąskim gardłem procesorów AMD jednak w Athlonie użyto potokowości co znacznie wpłynęło na wydajność całego układu. Pamięć cache została zwiększona do dwóch poziomów w stylu tzw architektury harvardzkiej. Athlon miał swoje liczne odmiany: Argon, Pluto, Orion, ThunderBird, Palomino, ThoroughBred, Barton. Na jądrze ThunderBird były oparte: Athlon, Athlon Mobile-4, oraz Duron, który miał tylko zablokowaną część cache drugiego poziomu (L2). Na jądrach od Palomino wzwyż: Athlon XP, Athlon MP, AthlonXP-M, Duron. Ciekawostką jest fakt, że Athlony były popularne wśród fanów overclockingu.

Opteron

[edytuj]
Mikroprocesor Athlon
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 2003
Rok zakończenia produkcji produkowany do dzisiaj
Producent AMD
Minimalne taktowanie 1.4 GHz
Maksymalne taktowanie 3.2 GHz

Opteron został opracowany z myślą wyłącznie o serwerach jako konkurent intelowskiego Xeona. Jego architektura oraz wykonanie nie były zaprojektowane dla celów domowych. Wyposażono go jednak w pewną innowacyjną cechę którą wykorzystano później w niemal każdym komputerze stacjonarnym - 64-bitowy procesor. Pierwszy w historii układ nazwany 80x86-64. Co więcej procesor potrafił pracować w dawnym 32-bitowym trybie bez spadku wydajności oraz w swoim nowoczesnym 64-bitowym środowisku. Również ważną właściwością było umożliwienie wspólnej pracy kilku procesorów, oraz wsparcie dla wielowątkowości na systemach wielordzeniowych.

Athlon 64

[edytuj]
Mikroprocesor Athlon
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 2003
Rok zakończenia produkcji produkowany do dzisiaj
Producent AMD
Minimalne taktowanie 2.2 GHz
Maksymalne taktowanie 3.2 GHz

Jak sama nazwa wskazuje ten model był drugim w pełni 64-bitowym procesorem. Tym razem jednak dla zastosowań domowych. Wyposażony był w cały pakiet technologi SIMD jak: MMX, 3DNow!, SSE, SSE2 i SSE3. Dodatkowo posiadał w rejestrze flag nowy bit zwany NX, służący jako dodatkowy środek bezpieczeństwa przed wirusami. Athlon 64 wprowadził nowy tryb zwany long mode. Był to natywny tryb pracy w środowisku 64-bitowym, pozwalający nie tylko na działanie 64-bitowego systemu operacyjnego ale także uruchamianie 32-bitowych programów pod takim systemem. Dodano także tryb legacy mode będący platformą dla kodu 8-, 16- i 32-bitowego. W tym procesorze nastąpiły liczne zmiany w pamięciach cache oraz ich buforach co wpłynęło na wydajność całego systemu.

Turion 64 X2

[edytuj]
Mikroprocesor Athlon
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 2006
Rok zakończenia produkcji produkowany do dzisiaj
Producent AMD
Minimalne taktowanie 1.6 GHz (na rdzeń)
Maksymalne taktowanie 2.4 GHz (na rdzeń)

Turion 64 X2 był dwurdzeniową, mobilną wersją Athlona 64, zatem posiada wszystkie cechy swojego poprzednika. Wyprodukowany wyłącznie na potrzeby komputerów przenośnych jako odpowiedź na Core 2 Duo Intela. Turion 64 X2 posiada wsparcie dla wirtualizacji oraz trybów oszczędności poboru mocy.

Phenom

[edytuj]
Mikroprocesor Athlon
Dane techniczne
Cecha Opis
Rok rozpoczęcia produkcji 2007/2008
Rok zakończenia produkcji produkowany do dzisiaj
Producent AMD
Minimalne taktowanie 1.8 GHz (na rdzeń)
Maksymalne taktowanie 2.6 GHz (na rdzeń)

Słowo Phenom pochodzi od angielskiego słowa phenomenon, co po polsku oznacza fenomen. Słowo to dobrze oddaje naturę tego układu, gdyż posiada 3 lub 4 rdzenie co było do tej pory niespotykane. Wyposażony w ten sam zestaw technologii co jego poprzednicy.

Kolejne modele

[edytuj]

Następne wersje procesorów miały coraz większe możliwości w dziedzinie przetwarzania liczb zmiennoprzecinkowych (np. instrukcje MMX) oraz coraz szybsze zegary. Tendencja ta przełamana dopiero została przez firmę AMD, która wprowadzając procesor Athlon udowodniła, że sam zegar to nie wszystko. Wydajność można także zmienić poprzez np. zmniejszenie liczby cyklów zegara potrzebnych do wykonania instrukcji. Dzięki temu w czasie potrzebnym do wykonania jednej instrukcji w nowych procesorach wykonują się dwie instrukcje. Nie oznacza to jednak dwukrotnego wzrostu wydajności, ponieważ w czasie badania wydajności procesora trzeba brać pod uwagę także inne czynniki.