Architektura procesorów dla komputerów PC



Podobne dokumenty
Budowa Mikrokomputera

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

LEKCJA TEMAT: Zasada działania komputera.

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Organizacja typowego mikroprocesora

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Budowa komputera Komputer computer computare

Procesory. Schemat budowy procesora

Architektura mikroprocesorów TEO 2009/2010

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Architektura systemów komputerowych. dr Artur Bartoszewski

Logiczny model komputera i działanie procesora. Część 1.

ARCHITEKTURA PROCESORA,

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Budowa i zasada działania komputera. dr Artur Bartoszewski

Architektura systemów komputerowych

Architektura komputerów

Programowanie Niskopoziomowe

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Dydaktyka Informatyki budowa i zasady działania komputera

Technika mikroprocesorowa

Architektura komputera

Jednostka centralna. Miejsca na napędy 5,25 :CD-ROM, DVD. Miejsca na napędy 3,5 : stacja dyskietek

Mikroprocesory rodziny INTEL 80x86

LEKCJA TEMAT: Współczesne procesory.

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

MIKROKONTROLERY I MIKROPROCESORY

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

WPROWADZENIE Mikrosterownik mikrokontrolery

PRZEWODNIK PO PRZEDMIOCIE

Magistrala systemowa (System Bus)

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

PI 02-01/12. W jednym bajcie można można zakodować 256 różnych znaków.

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia

dr hab. Joanna Jędrzejowicz Podstawy informatyki i komputeryzacji Gdańska Wyższa Szkoła Humanistyczna

Standard transmisji równoległej LPT Centronics

Budowa systemów komputerowych

Architektura komputerów

Projektowanie. Projektowanie mikroprocesorów

Mikroprocesor Operacje wejścia / wyjścia

Architektura komputerów

1. Budowa komputera schemat ogólny.

Technologie informacyjne - wykład 2 -

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wykład 2. Mikrokontrolery z rdzeniami ARM

Podstawy Techniki Mikroprocesorowej

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Technologia informacyjna. Urządzenia techniki komputerowej

Architektura komputerów

Architektura komputerów

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału ciągłego.

Bajt (Byte) - najmniejsza adresowalna jednostka informacji pamięci komputerowej, z bitów. Oznaczana jest literą B.

Urządzenia zewnętrzne

Architektura systemów komputerowych. Przetwarzanie potokowe I

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Architektura komputerów Historia systemów liczących

Sprawdzian test egzaminacyjny GRUPA I

Architektura mikroprocesorów z rdzeniem ColdFire

Historia komputera. Architektura komputera Historia komputera. Historia komputera. Historia komputera. Historia komputera

Budowa pamięci RAM Parametry: tcl, trcd, trp, tras, tcr występują w specyfikacjach poszczególnych pamięci DRAM. Czym mniejsze są wartości tych

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Który z podzespołów komputera przy wyłączonym zasilaniu przechowuje program rozpoczynający ładowanie systemu operacyjnego? A. CPU B. RAM C. ROM D.

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Sprawdzian test egzaminacyjny 2 GRUPA I

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

System operacyjny System operacyjny

Historia komputera. Lubię to! - podręcznik

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

RODZAJE PAMIĘCI RAM. Cz. 1

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Wykład 2. Mikrokontrolery z rdzeniami ARM

System mikroprocesorowy i peryferia. Dariusz Chaberski

Spotkanie z komputerem

Budowa komputera. Lubię to! - podręcznik

Przykładowe pytania DSP 1

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

Zarządzanie pamięcią operacyjną

Technologie Informacyjne Wykład 3

URZĄDZENIA WEJŚCIA-WYJŚCIA

Procesory rodziny x86. Dariusz Chaberski

Podstawy Informatyki Systemy sterowane przepływem argumentów

Transkrypt:

Piotr Sadura Zespół Szkół w Barwicach Materiały pomocnicze do lekcji technologii informacyjnej lub zajęć pozalekcyjnych szkoły ponadgimnazjalnej Architektura procesorów dla komputerów PC Barwice 2007 1

Wstęp Od kiedy zbudowano pierwszy komputer, a było to w latach 50-tych zmiany w jego budowie i oprogramowaniu stały się bardzo szybkie i nieodwracalne. Dziś coraz częściej komputery stacjonarne zastępują notebooki, które zajmują zdecydowanie mniej miejsca i można je zawsze ze sobą zabrać po skończonej pracy. Komputery służą młodszym i starszym, ludziom niezależnie od wykształcenia, wieku czy statusu społecznego. Podstawowym ich zadaniem jest ułatwianie życia i pracy człowieka, ale także bardzo często służą do rozrywki czy utrzymywania kontaktów z ludźmi nawet z drugiego końca świata. Komputer wywarł bardzo duży wpływ na kształt współczesnej kultury, szczególnie kultury masowej mam tu na myśli Internet, ogólno dostępne źródło wszelkiej wiedzy czy rozrywki. Zrewolucjonizował całkowicie XX wiek dlatego śmiało można nazwać ten wiek erą komputera. Mało kto z nas wyobraża sobie życie jakby to było, gdyby nie było komputerów, jeszcze więcej ludzi nawet nie zastanawia się jak one działają, po prostu są. Podstawowa zasada funkcjonowania komputera nie zmieniła się zanadto odkąd to w 1944 r. John von Neumann sformułował założenia współczesnego komputera 1. Polegało ono na błyskawicznym przetwarzaniu dostarczonych danych według podanego programu działania i tak jest do dziś. Zmienia się tylko konstrukcja, gabaryty i oprogramowanie, które podąża za rozwojem techniki i technologii tworzenia. Każdy komputer zbudowany jest z kilku podstawowych elementów w bezpośredni sposób współpracujących ze sobą. Są to: procesor, pamięć operacyjna, szyna danych, kanał DMA, pamięci dyskowe oraz urządzenia wejściawyjścia. Najważniejszym elementem komputera jest procesor i nim to głównie w mojej pracy będę się zajmować. Głównym celem pracy jest analiza porównawcza współczesnych procesorów pod względem funkcjonalności i wydajności oraz dodatkowo zebranie, uporządkowanie i zanalizowanie informacji dotyczących architektury procesorów. Pokrótce przedstawię historię komputera, omówię jego budowę, sposób działania a następnie całą swoją uwagę skupię na architekturze procesorów. Ich budowie i 1 Organizacja i architektura systemu komputerowego, Williams Stallings, WN-T, 2000 2

właściwościach a także innowacjach wprowadzanych w kolejnych latach. W pracy opisze procesory od najstarszych do współczesnych na nich skupiając głównie całą swoją uwagę. Przy opracowaniu tematu wykorzystałem szereg pozycji, podanych w spisie literatury. Najcenniejszymi pozycjami okazały się informacje i specyfikacje procesorów zawarte na stronach internetowych firm AMD i INTEL. Dodatkowo dużą pomocą okazały się pozycje książkowe zawierające informacje o mikroprocesorach. 1. Historia i budowa komputera 1.1. Historia komputera Od początku dziejów, człowiek zmuszony był do wykonywania różnego rodzaju obliczeń. Wykonywał je na palcach, przy pomocy kamieni. Wraz z wykonywaniem coraz to trudniejszych obliczeń pojawiły się pomoce, które pomagały człowiekowi w wykonywaniu tych zadań. Około 3000 lat p.n.e. w środkowej Azji zostało wynalezione liczydło (ang. abakus ). Zbudowane z kuleczek lub talerzyków poruszających się po metalowych pręcikach, używało kombinowanego systemu dwójkowo-piątkowego. Wszystkie rozwinięte kultury starożytne posługiwały się jakąś odmianą liczydeł. Przez wieki rozbudowywano je i unowocześniano techniki liczenia, powstawały różnego rodzaju wynalazki, mniej lub bardziej spektakularne, mniej lub bardziej znaczące dla cywilizacji. Dzięki nim i wiedzy naukowców XX wieku, podjęto próby budowy maszyny, która by mogła ułatwić życie ludzi. Historia komputerów jest często prezentowana w powiązaniu z rozwojem układów elektronicznych, które decydowały o ich szybkości działania. Generacja pierwsza związana była z lampą elektronowa, druga z tranzystorem, trzecia z układem scalonym, czwarta z mikroprocesorem (układ scalony o wielkiej sali integracji, VLSI), piąta z rozwojem Internetu 2. 1.1.1. Generacja pierwsza: lata 1940-59. Pierwsze komputery budowane były w oparciu o lampy elektronowe, które można nazwać elektronicznymi maszynami cyfrowymi. Programowane były w 2 Wprowadzenie do informatyki - Notatki do wykładu dla I roku astronomii, Tomasz Kwiatkowski, Obserwatorium Astronomiczne UAM, Poznań, 1993 3

języku wewnętrznym (assembler). W tych latach powstały m.in. komputery: ABC (1942), ENIAC (1946), UNIVAC (1951), IBM 650 (1954). Przez długi czas za pierwszą elektroniczną maszynę cyfrową uważano komputer ENIAC z 1946 r. Jednak decyzja sądu z 1973 r. palmę pierwszeństwa przyznała Johnowi Atanasoff, który razem z Cliffordem Berry znacznie wcześniej, bo w latach 1939-1942, zbudowali pierwszy prawdziwy komputer. To w czasie wieczoru pełnego Scotch [Whiskey] i jazdy samochodem z prędkością 100 mil/godz. pojawił mi się pomysł elektronicznie sterowanej maszyny, która używałaby liczb w systemie dwójkowym (binarnych) zamiast tradycyjnych liczb w systemie dziesiętnym... Atanasoff-Berry Computer (ABC) miał rozmiar biurka, posiadał ponad 300 lamp i ponad kilometr kabli. Szybkość jego obliczeń to jedna operacja na 15 sekund. Electronic Numerical Integrator and Calculator (ENIAC), to kolejny z komputerów, posiadał 18 tys. lamp elektronowych (zegar o częstotliwości 60-125 khz), liczył na liczbach 10-cio cyfrowych, mnożył w czasie 2.6 ms a dzielił w czasie 25 ms, można go było programować jedynie zmieniając połączenia kabli na panelu sterowania. UNIVAC, to komputer z zegarem 2.25 MHz, w którym zastosowano tylko 5400 lamp elektronowych. Operacje mnożenia wykonywał już w ciągu 1.8 ms, dzielenia 3.6 ms (6 razy szybciej niż ENIAC). Realizował koncepcje von Neumana. Był komputerem łatwym do programowania, dostępnym komercyjnie. Wyprodukowano tylko 46 egzemplarzy, zyskując popularność po przewidzeniu wyniku wyborów prezydenckich w USA w 1952 r. Komputer IBM 650 wykonywał dodawanie oraz odejmowanie w ciągu 1.65 ms, dzielenie 16.9 ms, posiadał pamięć bębnową. Na panelu umieszczono wiele mrugających światełek (co zwiększało atrakcyjność maszyny). Dane w tym komputerze wyprowadzane były na kartach dziurkowanych (kompatybilne z innymi maszynami IBM). Sprzedano ok. 2000 tych maszyn był to najpopularniejszy komputer w tych latach. 4

1.1.2. Generacja druga: lata 60-te. Komputery budowano już w oparciu o tranzystory. Programowane były w językach wysokiego poziomu: Fortranie, Algolu, Cobolu. Wprowadzono przetwarzanie wsadowe. W tym okresie wyprodukowano komputery: IBM 360 (od 1964), ODRA 1204 (polski, 1967). Komputer IBM 360 zbudowano na tranzystorach. Powstały modele od 360/20 (wersja mini, 16KB RAM) do 360/65 i później 360/95 (superkomputer, 1024 KB). Zastosowano systemy operacyjne: DOS/360 (nie PC DOS!), OS/360, oraz architekturę opartą o 8-bitowy bajt, 16 bitowe rejestry, 24-bitowa przestrzeń adresową. Był to pierwszy komputer ogólnego przeznaczenia poprzednio każdy nowy typ komputera wymagał dostosowanych do siebie urządzeń zewnętrznych oraz programów. IBM 360 zapoczątkował rodzinę kompatybilnych maszyn, które spopularyzowały prace na odległość (terminale podłączone przez linie telefoniczne). Do 1968 roku sprzedano 14 tys. tych komputerów. ODRA 1204 to komputer, który posiadał pamięć 16-64 K słów 24 bitowych. Wyprodukowano 179 maszyn, z czego 114 wyeksportowano. 1.1.3. Generacja trzecia: lata 70-te. W latach 70-tych komputery budowane już były w oparciu o układy scalone. Wprowadzono pracę wielodostępną pod nadzorem systemu operacyjnego (UNIX). Językami programowania były Pascal oraz C. Powstały minikomputery PDP 11 (wzorowana na nim polska MERA 300). 1.1.4. Generacja czwarta: lata 80-te. Powstają układy scalone o bardzo wielkiej skali integracji (VLSI) oraz mikrokomputery Apple. Pierwsze modele powstały w 1976 (Apple I), ale były jeszcze dość prymitywne. Bardziej rozbudowanym komputerem był Apple Macintosh, w którym zastosowano procesor Motorola 68000 z zegarem 8 MHz. Komputer posiadał 125 KB (lub 512) RAM, napęd dyskietek 400 KB oraz zintegrowany monitor i mysz. Zastosowano w nim pierwszy okienkowy system operacyjny. Mikrokomputer IBM PC (Personal Computer) posiadał procesor Intel 8080, 16kB (rozszerzalne do 256 kb) RAM, napęd dyskietek 160kB oraz monitor. Zastosowano otwartą architekturę (cały komputer można złożyć z łatwo 5

dostępnych części jak domek z klocków Lego), a także ujawniono plany konstrukcyjne, dzięki czemu każdy mógł składać te komputery. Komputer ten kosztował ok. 4000 USD. Działał na systemie operacyjnym MS-DOS (Microsoft Disk Operating System). Microsoft kupił system QDOS i rozwinął go w MS-DOS. Minikomputery VAX (zastępują PDP), pracując pod UNIXem. Powstały superkomputery Cray. 1.1.5. Generacja piąta: lata 90-te. Lata 90-te to przede wszystkim szybki rozwój Internetu, przetwarzanie równoległe oraz programowanie obiektowe (Virtual Realisty). Cztery paradygmaty historii komputerów Dekada Lata 60-te Lata 70-te Lata 80-te Lata 90-te Użytkowanie Użytkownicy Lokalizacja Wsad Informatycy Sala Wielodostęp Specjaliści Pokój PC Poj. osoby Biurko Sieć Grupy osób Globalna wioska 1.2. Pierwsza dekada XXI wieku 1.2.1. Powrót do terminali. Użytkownicy otrzymują znacznie odchudzone komputery, pozbawione twardych dysków, z niezbyt szybkimi procesorami, za to z bardzo szybkim dostępem do sieci. Programy uruchamiane są na silnych serwerach sieciowych, płacą nie za sam program, tylko za czas jego wykorzystywania - interfejsem może być np. przeglądarka WWW. Użytkownik nie musi się martwić o wirusy, o instalacje nowych wersji programów itp. Poczta elektroniczna odbywa się poprzez interfejs WWW. 1.2.2. Mobilne komputery. Spada sprzedaż stacjonarnych komputerów PC, wzrasta notebooków. Notebooki te można podłączać do stacjonarnych klawiatur, myszy, monitorów. W przyszłości stacjonarnymi komputerami będą tylko serwery komputerami osobistymi będą notebooki. 6

1.2.3. Przetwarzanie rozproszone. Wiele sieci komputerowych jest w pełni wykorzystywane tylko czasami (nocą, w wakacje wiele serwerów ma wolne moce przerobowe). Clusters to komputery połączone szybką siecią, wspólnie wykonujące zadany program. Moc obliczeniowa może być dzielona tak, jak energia elektryczna; można ją przesyłać w te miejsca globu, gdzie jest potrzebna. 1.2.4. Wolnodostępne oprogramowanie Wzrasta znaczenie programów, udostępnianych nieodpłatnie razem z kodem źródłowym (zwanych Open Source Software OSS). Wprowadzono Licencję GNU, która charakteryzuje się: programy można sprzedawać lub rozdawać za darmo, ale jednocześnie trzeba udostępniać nieodpłatnie kod źródłowy (jeśli ktoś nie chce kupować, może sobie sam program skompilować), wiele firm woli kupować programy GNU, gdyż wtedy uzyskuje wsparcie techniczne, każdy nowy program, zawierający w sobie fragmenty programów na licencji GNU, też musi być objęty licencja GNU, przykładem pakietem programów GNU jest system operacyjny GNU/Linux, oraz Licencję BSD: to samo, co GNU poza jednym: nie wymaga się, by nowy program, w którym wykorzystano fragment programu BSD, też był objęty licencją BSD, przykłady: system graficzny XWindow, jedna z odmian Uniksa FreeBSD, 1.3. Koncepcja von Neumana W 1945 roku po raz pierwszy została opublikowana koncepcja przechowywanego programu, która jest przypisywana jednemu z konsultantów projektu ENIAC Johnowi von Neumanowi (należy wspomnieć, że niemal w tym samym czasie podobna koncepcja została opracowana również przez Alana Turinga). Idea ta miała dać podłoże pod nowy komputer von Neumana EDVAC (ang. Electronic Discrete Variable Computer ). 7

W roku 1946 von Neuman w Princeton Institute for Advanced Studies rozpoczął projektowanie komputera. Projekt ten zakładał, iż komputer będzie posiadał trzy odrębne elementy składowe: pamięć, urządzenia wejścia/wyjścia oraz procesor. W pamięci będą przechowywane przetwarzane dane oraz program dla procesora. Urządzenia wejścia/wyjścia umożliwią wymianę informacji pomiędzy komputerem a otoczeniem, natomiast procesor umożliwi przetwarzanie danych. Poniżej przedstawiono rysunek przedstawiający Przykładową Maszynę Cyfrową (PMC) zbudowaną o założenia von Neumana 3. Rysunek 1. Przykładowa Maszyna Cyfrowa (PMC) Centralną funkcję w systemie pełni procesor, który komunikuje się z pozostałymi komponentami za pomocą trzech magistral (magistrala składa się z kilku linii, po których biegną sygnały cyfrowe, tzn. 0 lub 1): magistrala adresowa służy do przekazywania adresu komórki lub rejestru wejścia wyjścia. Szerokość magistrali adresowej określa obszar adresowy komputera. magistrala danych służy do przesyłania danych pomiędzy procesorem a pamięcią lub rejestrami wejścia/wyjścia. 3 Organizacja i architektura systemu komputerowego, Williams Stallings, WN-T, 2000 8

magistrala sterująca umożliwia procesorowi zapis lub odczyt informacji w pamięci lub w rejestrach wejścia/wyjścia. 1.4. Elementy składowe komputera Komputer składa się z 3 zasadniczych części: - procesora, - pamięci, - urządzeń WE/WY połączonych magistralą systemową. 1.4.1. Procesor W procesorze wyróżniamy układ arytmetyczno-logiczny, który wykonuje działania matematyczne: 4 podstawowe oraz wiele dodatkowych funkcji, często potrafi obliczać wartości złożonych funkcji, np. trygonometrycznych, wykonuje działania logiczne, np. negacja, porównanie oraz rozkazy sterujące. Dodatkowo posiada rejestry, których zadaniem jest przechowywanie liczb. Ich długość określa architekturę wewnętrzną procesora. W procesorach 8-mio bitowych rejestry posiadały długość 8-miu bitów (np. słynne mikrokomputery Atari, Amiga, Spectrum) natomiast procesory Intela stosowane w komputerach IBM PC XT oraz AT były 16- to bitowe. Współczesne procesory Intela klasy Pentium, procesory firmy AMD czy Cyrix występują w wersji 32 bitowej. Procesory innych producentów: np. DEC Alpha, Sun Microsystems, Intel Itanium występują w wersji 64 bitowej. W procesorze wyróżniamy jeszcze szynę danych, szynę adresową i zegar określający szybkość pracy procesora. 1.4.2. Pamięć Pamięć ROM (Read Only Memory) ma zawartość stałą i nie może być zmieniana; w PC pamięcią taką jest BIOS. Ponadto wyróżniamy pamięć operacyjną (RAM Random Access Memory) oraz pamięć masową. 1.4.3. Urządzenia WE/WY Do urządzeń wejścia zaliczamy m.in: klawiaturę, mysz, trackball, touchpad, mikrofon, kamerę i skaner. Natomiast urządzenia wyjścia to: drukarka, monitor oraz głośniki. 9

2. Budowa i zasada działania procesora 2.1 Elementy składowe procesora Procesorem (ang. processor) nazywamy urządzenie przeznaczone do przetwarzania informacji w sposób określony przez użytkownika. Jest najważniejszą częścią składowa komputera, sercem każdego komputera; dlatego jest on także nazywany centralną jednostką obliczeniową (w skrócie CPU). Poniżej przedstawiam schemat blokowy procesora. Rysunek 2. Schemat blokowy procesora Oznaczenia: RAM (Random Acces Memory) BU (Bus Unit) AU (Addresing Unit) MMU (Memory Management Unit) IU (Instruction Unit) EU (Execution Unit) ALU (Aritmetic-Logic Unit) FPU (Floating Point Unit) pamięć operacyjna układ zarządzający magistralami układ obliczania adresu układ zarządzania pamięcią dekoder instrukcji moduł wykonawczy zawiera jednostka arytmetyczno-logiczna jednostka zmiennoprzecinkowa Zadaniem jednostki arytmetyczno - logicznej jest przetwarzanie informacji czyli wykonywanie operacji arytmetycznych i logicznych. Rodzaj wykonywanych 10

operacji zależy od sygnałów sterujących przesyłanych przez jednostkę sterującą. W skład jednostki wykonawczej wchodzi jednostka arytmetyczno-logiczna, oraz zestaw rejestrów, które z nią współpracują. Informacją wejściową do jednostki wykonawczej są dane a informacją wyjściową wyniki w postaci liczb tekstu sygnałów sterujących pracą innych urządzeń. W skład jednostki sterującej wchodzi : rejestr rozkazów, dekoder rozkazów oraz układ sterowania. W rejestrze rozkazów przechowywany jest kod aktualnie wykonywanego rozkazu (instrukcji). W czasie wykonywania programu procesor odczytuje kolejne rozkazy, które następnie musi rozpoznać (dekodować). Istnieje wiele rodzajów mikroprocesorów. Większość z nich różni się częstotliwością zegara, wyrażaną w megahercach. Im wyższa częstotliwość zegara tym szybszy procesor. Wszystkie mikroprocesory więc zawierają podobne elementy: układ sterowania i synchronizacji, który kontroluje pracę procesora i wytwarza sygnały potrzebne do sterowania niektórymi elementami komputera; arytmometr, czyli układ, który wykonuje operacje arytmetyczne i logiczne (niektóre procesory mają kilka arytmometrów); rejestry, tj. układy pamięci; wbudowaną pamięć podręczną cache, która działa podobnie do zewnętrznej pamięci RAM. Zapewnia ona, że procesor nie jest zmuszony czekać na dane potrzebne mu do pracy; koprocesor matematyczny, który jest zestawem instrukcji przeznaczonych do obsługi skomplikowanych operacji matematycznych; wewnętrzne szyny łączące elementy procesora. 2.2. Działanie procesora Procesor jest układem cyfrowym taktowanym przez sygnał zegarowy, który realizuje zadany program - ciąg rozkazów umieszczony w pamięci operacyjnej. Program ma zwykle zadanie przetworzenia określonych danych pobranych z pamięci (lub urządzeń zewnętrznych), oraz zapisanie wyników ich przetwarzania, też w pamięci (lub przekazanie do urządzeniach zewnętrznych). Połączenie mikroprocesora z pamięcią operacyjną realizuje się za pomocą dwóch magistral: adresowej i danych. Do sterowania ruchem na tych magistralach wykorzystuje się zbiór sygnałów sterujących. Realizacja programu przez taki układ przebiega następująco: 11

Kod rozkazów jest odczytywany z pamięci RAM i umieszczany w kolejce instrukcji. Poszczególne instrukcje (słowa binarne) trafiają z kolejki do dekodera IU, który rozkodowuje rozkazy przeznaczone do wykonania. Wykorzystuje przy tym informacje o sposobie kodowania rozkazów zawarte w pamięci stałej ROM umieszczonej w strukturze procesora. Zależnie od rozkazu dekoder często musi wydzielić z kodu instrukcji zawarte w niej argumenty, lub adresy danych, które procesor będzie wykorzystywał. Są one przesyłane odpowiednio do bloku wykonującego instrukcje EU i bloku adresowego AU. Blok adresowy AU i zarządzania pamięcią MMU wypracowuje na tej podstawie odpowiednie sygnały i dane przekazywane do bloku zarządzania magistralami BU. Po wystawieniu adresu na magistrali adresowej generowane są sygnały sterujące, które powodują odczyt danych z pamięci - układ pamięci wystawia dane na magistrali danych. Dane są przekazywane do bloku wykonującego instrukcje lub (jeśli są kodami następnych rozkazów programu do kolejki instrukcji). Blok wykonujący instrukcje EU zawiera jednostkę arytmetyczno-logiczną ALU, która dokonuje porównań lub działań matematycznych na argumentach stałoprzecinkowych. Argumenty zmienno-przecinkowe są przetwarzane w jednostce do tego celu wyspecjalizowanej FPU. Wyniki przetwarzania trzeba często zapisać w pamięci pod określonym adresem - blok wykonujący instrukcje przekazuje odpowiednie dane do bloku zarządzania pamięcią i bloku sterującego magistralami. Wszystko musi być odpowiednio synchronizowane w czasie, dlatego układ wykonujący instrukcje EU wypracowuje też różne sygnały sterujące, przez które ma możliwość wpływu na pracę innych bloków. Układ wykonujący instrukcje często też przechowuje wyniki pośrednie przetwarzania danych we własnych rejestrach. Szybkość wykonywania programu zależy w znacznej mierze od czasu dostępu procesora do układu pamięci operacyjnej. Nie bez znaczenia jest także pojemność pamięci (ile danych można w niej zapisać). Stosowane we współczesnych komputerach wielozadaniowe systemy operacyjne umożliwiają 12

uruchamianie wielu programów jednocześnie. Dobrze jest więc gdy procesor ma do dyspozycji dużą pamięć operacyjną RAM. Współczesne komputery wyposaża się we względnie dużą i wolniejszą pamięć główną, oraz w mniejszą ale szybszą pamięć podręczną cache umieszczoną w mikroprocesorze. Takie rozwiązanie pozwala na korzystanie z pamięci o dużej pojemności, jednocześnie możliwe jest umieszczenie najpotrzebniejszych danych, w szybkiej pamięci podręcznej. Pamięć podręczna zawiera kopię części zawartości pamięci głównej. Gdy procesor zamierza odczytać słowo z pamięci, najpierw następuje sprawdzenie, czy słowo to nie znajduje się w pamięci podręcznej. Jeśli tak, to słowo to jest szybko dostarczane do procesora. Jeśli nie, to blok pamięci głównej RAM zawierający określoną liczbę kolejnych słów jest wczytywany do pamięci podręcznej, a następnie potrzebne słowo (zawarte w tym bloku) jest dostarczane do procesora. Następne odwołania do tego samego słowa i sąsiednich zawartych w przepisanym bloku będą realizowane już znacznie szybciej. Organizacja współpracy procesora z takimi pamięciami wymaga zastosowania dodatkowego układu - kontrolera cache, który steruje tym procesem. 2.3. Nowoczesne technologie procesorowe Współczesne procesory posiadają bardzo wyrafinowaną mikroarchitekturę i zaawansowane modele programowe. Jest to wynikiem wieloletniej ewolucji i zmieniającego się podejścia do ich projektowania. Przykładem mogą tutaj być procesory CISC, RISC, EPIC 4. Procesory CISC. Projektanci pierwszych procesorów zakładali, że komputery będą programowane bezpośrednio w kodzie maszynowym. Dlatego kosztem ograniczenia liczby rejestrów tworzono procesory o bardzo rozbudowanych zestawach instrukcji, które miały ułatwiać pisanie programów. Instrukcje były implementowane w procesorze jako mikroprogram, a czasy ich wykonywania były długie. Procesory o takich cechach modelu programowego zostały nazwane procesorami CISC (Complex Instruction Set Computing). Procesory RISC. Wraz z rozwojem języków programowania wysokiego poziomu i ich kompilatorów szybko zauważono, że programy wykorzystują jedynie 4 Od architektury CISC do EPIC, ( ATMosfera nr 1/2005) 13

mały podzbiór instrukcji procesora i projektowanie procesorów o złożonym modelu programowym pozbawione jest większego sensu. Zaobserwowano, że tranzystorów przeznaczonych do realizowania niewykorzystywanych instrukcji można użyć do budowy dodatkowych rejestrów lub do zwiększenia rozmiaru pamięci podręcznej. Zaproponowano uproszczenie instrukcji, zmniejszenie liczby trybów adresowania i automatową implementację jednostek wykonawczych, czyli elementów procesora odpowiadających za wykonywanie określonych grup instrukcji. Implementacja jednostek wykonawczych jako automatów skończonych miała umożliwić znaczne skrócenie czasu przetwarzania pojedynczych instrukcji. W celu uproszczenia operacji dekodowania instrukcji zdecydowano, by wszystkie instrukcje miały ten sam format i tę samą długość. Tak narodziła się idea procesora RISC (Reduced Instruction Set Computing). W procesorach RISC wprowadzono także pojęcie potoku, czyli ścieżki przetwarzania instrukcji wewnątrz procesora. Wykonanie instrukcji podzielono na logiczne etapy, z których każdy wykonywany był niezależnie na określonym stopniu potoku. Instrukcja po pobraniu z pamięci przemieszczana była w głąb potoku i przechodziła przez jego stopnie. Po przejściu przez dany stopień potoku można było wykonywać w nim kolejną instrukcję. Najprostszy potok składa się z czterech stopni: pobrania instrukcji, dekodowania, wykonania i zapisu wyniku. Dzięki wprowadzeniu potoku możliwe było równoczesne wykonanie i pobieranie kolejnych instrukcji, co dawało w efekcie wydajność rzędu pojedynczej instrukcji na cykl zegara. Poniżej przedstawiam rysunek obrazujący różnicę pomiędzy procesorami RISC i CISC. Rysunek 3. Różnica pomiędzy procesorami RISC i CISC 14

Ograniczenie technologiczne związane z częstotliwością taktowania sprawiło, że zaczęto poszukiwać innej metody zwiększenia prędkości przetwarzania instrukcji. Zaobserwowano, że można wprowadzić do procesora dodatkowy potok i próbować wykonywać dwie instrukcje równolegle. Jeżeli nawet zdarzałyby się sytuacje, w których do równoległego wykonania dwóch instrukcji w dwóch potokach wymagane byłyby te same jednostki wykonawcze, to zysk związany z równoległym wykonaniem innych instrukcji i tak byłby wystarczająco duży. Opracowana architektura została określona mianem architektury superskalarnej i dość szybko zaczęto ją stosować w procesorach typu RISC. Początkowo z wykorzystaniem architektury superskalarnej wiązało się wiele trudności. Głównym problemem była konieczność kompilacji i generacji takiego kodu, w którym występuje minimalna korelacja pomiędzy dwoma następującymi po sobie instrukcjami. Dopiero odpowiednio wygenerowany kod wynikowy programu mógł w pełni wykorzystać możliwości nowego podejścia. Rysunek 4. Architektura superskalarna i spekulatywne wykonanie kodu. Początkowo superskalarna architektura była wyłącznie domeną procesorów typu RISC. Spowodowane to było ich prostym i spójnym modelem programowym. Instrukcje w procesorach RISC skorelowane są ze sobą wyłącznie przez rejestry, a równy rozmiar słowa rozkazowego znacznie ułatwia dekodowanie instrukcji. Ponadto duża pamięć podręczna minimalizuje efekty błędnego przewidywania 15

skoków i eliminuje konieczność pobierania instrukcji bezpośrednio z pamięci. Począwszy od procesora Intel Pentium, superskalarność przestała być wyłącznie cechą procesorów RISC. Postęp mikroelektroniki i zwiększająca się gęstość upakowania tranzystorów pozwoliła na realizację superskalarnej architektury procesorów typu CISC. Dzięki możliwości użycia praktycznie dowolnej liczby tranzystorów można było szeroko rozbudowywać logikę mikroprocesora i implementować skomplikowane mechanizmy, pozwalające na przetwarzanie potokowe. W procesorze Intel Pentium Pro wprowadzono po raz pierwszy spekulatywne wykonanie instrukcji, dzięki czemu udało się osiągnąć wydajność przetwarzania rzędu jednej instrukcji na cykl zegara. Taki współczynnik wydajności był wcześniej osiągalny wyłącznie dla procesorów RISC. Od czasu narodzin procesora Intel Pentium mikroarchitektura najbardziej popularnej rodziny procesorów CISC stała się praktycznie taka sama jak mikroarchitektura procesorów RISC. Procesory firmy Intel, począwszy od Pentium, zaczęto określać mianem post-risc. Kolejne generacje procesora Intel Pentium stanowią już tylko udoskonalenie koncepcji Pentium Pro, zarówno na poziomie mikroarchitektury, jak i technologii wykonania. Opracowanie nowych technologii wytwarzania układów VLSI pod koniec lat dziewięćdziesiątych pozwoliło na zmniejszenie odległości pomiędzy elementami i na znaczne zwiększenie częstotliwości taktowania. Procesory mogły być taktowane zegarem przekraczającym 1 GHz. Niestety, wraz ze zwiększaniem częstotliwości taktowania zaczęły uwidaczniać się nowe problemy. Podstawową trudnością dla projektantów okazało się odprowadzanie ciepła, wydzielanego podczas pracy układu przez jego bardzo złożone części. Jak można się domyślić, problem ten dotyczył głównie procesorów post-risc, w których logika układów przetwarzających jest najbardziej skomplikowana. Okazało się także, że częstotliwość taktowania jest ograniczona wartością, dla której okres impulsu zegarowego jest mniejszy niż czas jego propagacji do najdalszych fragmentów układu. Z jednej strony problem odprowadzania ciepła można rozwiązać zwiększając powierzchnię układu. Z drugiej strony nie można tego zrobić ze względu na ograniczony czas propagacji i pojemność pasożytniczą. Dla projektantów procesorów stało się jasne, że częstotliwość taktowania powoli zbliża się do wartości granicznej i trzeba poszukać nowych metod pokonania tej przeszkody. 16

Pod koniec lat dziewięćdziesiątych firma Intel rozpoczęła prace nad nowym procesorem, który z jednej strony miał być pierwszym układem 64-bitowym tej firmy, a z drugiej strony miał posiadać zupełnie nowy model programowy i nową mikroarchitekturę, zapewniającą solidną podstawę dla dalszego rozwoju procesorów. Pojawił się pomysł nowego modelu programowego o nazwie EPIC (Explicitly Parallel Instruction Computing). Model programowy EPIC wywodzi się ze starej koncepcji o nazwie VLIW (Very Large Instruction Word), a polega na wykonywaniu prostych instrukcji grupowanych w wielkie słowa rozkazowe. Instrukcje grupowane są w wielkie słowa rozkazowe na poziomie kompilacji, tzn. kompilator określa sposób równoległego wykonania instrukcji. Procesor pobiera słowa i wykonuje wiele instrukcji równocześnie bez konieczności spekulowania i analizowania zależności pomiędzy nimi. Dzięki prostej logice instrukcji może istnieć wiele jednostek wykonawczych, a procesor może wykonywać wiele instrukcji tego samego typu w pojedynczym takcie zegara. Określoną liczbę tranzystorów zaoszczędzonych wskutek uproszczenia logiki układów przetwarzania można przeznaczyć na zwiększenie liczby rejestrów i jednostek wykonawczych. Rysunek 5. Model programowy EPIC. 17

Procesor Itanium jest pierwszą implementacją architektury EPIC. Aktualna wersja tego procesora to Itanium 2. Itanium jest procesorem 64-bitowym o bardzo dużej liczbie rejestrów i licznych mechanizmach eliminujących znane problemy związane z wykonywaniem kodu na dotychczasowych procesorach (ze względu na ograniczony rozmiar artykułu mechanizmy te nie będą omawiane). Procesor Itanium 2 wyposażony jest w wiele jednostek wykonawczych (6 jednostek arytmetyki stałopozycyjnej, 4 jednostki arytmetyki zmiennopozycyjnej, 4 jednostki load/store), bardzo dużą pamięć podręczną i interfejs do bardzo szybkiej magistrali pamięci. Pojedyncze, wielkie słowo rozkazowe zawiera trzy instrukcje procesora. W Itanium 2 wprowadzono także spekulatywne wykonanie dużych słów rozkazowych, dzięki czemu procesor może przetwarzać do sześciu instrukcji w pojedynczym cyklu zegara. Dostępne wersje procesora taktowane są zegarem nie przekraczającym 1,6 GHz, a mimo tego ich wydajność przekracza wydajność innych procesorów, taktowanych dwa razy większą częstotliwością. Ze względu na swoje możliwości procesor jest używany głównie do realizacji konstrukcji superkomputerowych. Stosuje się go także do budowy dużych serwerów, używanych do przetwarzania wielkich zbiorów danych. 3. Architektura procesorów dla komputerów PC 3.1. Starsze procesory x86 3.1.1. Procesor 8086 Procesor 8086 charakteryzuje się dwoma trybami pracy: minimalnym i maksymalnym. W trybie minimalnym procesor sam wytwarza sygnały sterowania magistralą systemową. Tryb maksymalny wymaga obecności dekodera 8288, który bazując na sygnałach statusowych S0-S2 procesora wytwarza niezbędne sygnały sterujące. Schemat wyprowadzeń mikroprocesora 8086 pokazany jest na rysunku 6. 18

Rysunek 6. Rozkład wyprowadzeń procesora 8086 Znaczenia poszczególnych wyprowadzeń: AD15 - AD0 16-bitowa magistrala danych procesora oraz jednocześnie 16 mniej znaczących bitów 20-bitowej magistrali adresowej. W obsłudze magistrali wykorzystywany jest proces zwany multipleksowaniem: końcówki AD15-AD0 są używane najpierw do wystawiania adresu, po czym zmieniają swoje znaczenie i obsługują szynę danych. A19 A16 - Brakujące cztery najbardziej znaczące bity adresu i jednocześnie S6 S3 (multipleksowane) cztery linie statusowe, informujące o używanym w danej operacji rejestrze segmentowym oraz o stanie bitu IE (ang. Interrupt Enable). ~BHE/S7 - (ang. Bus High Enable) sygnał używany przez procesor w operacjach bajtowych. Niezależnie od tego, czy przedmiotem operacji są pojedyncze bajty, czy też dwubajtowe słowa, wykorzystywana jest ta sama 16-bitowa magistrala danych. ~RD - (ang. Read) aktywny stan tego wyjścia (odpowiadający poziomowi zera logicznego) informuje o żądaniu odczytu danych przez procesor. READY - Wejście wprowadzające procesor w stan oczekiwania. W stanie tym generowana są tzw. cykle oczekiwania (ang. wait state), a 19

procesor czeka na zgłoszenie gotowości urządzenia wejściawyjścia lub pamięci. INTR - (ang. Interrupt) wejście zbierające zgłoszenia przerwań pochodzących od sprzętu. ~TEST - Stan tego wyjścia badany jest instrukcją wait. W stanie wysokim procesor wprowadzany jest w tzw. bieg jałowy i utrzymywany w nim jest tak długo, jak długo sygnał na tej końcówce utrzymuje się na wysokim poziomie logicznym. NMI - (ang. Nonmaskable Interrupt) wejście przerwań niemaskowalnych. RESET - Wejście wymuszające inicjalizację procesora (powrót do stanu wejściowego). CLK - Sygnał taktujący dla procesora. ~S0, ~S1,~S2 Sygnały sterujące dla kontrolera magistrali 8288 (tylko w trybie maksymalnym). MN/~MX - przełącznik trybu pracy MIN/MAX (1 = tryb minimalny, 0 = tryb maksymalny). V cc - wejście napięcia zasilającego (+5V). GND - Masa zasilania. W modelach komputerów PC/XT używa się procesora 8086 wyłącznie w trybie maksymalnym (wspomaganego kontrolerem magistrali 8288). Poniżej przedstawiam rysunek przedstawiający procesor 8086. Rysunek 7. Procesor 8086 20

Projekt: Produkcja: Data wprowadzenia: Częstotliwość zegara: Maksymalna częstotliwość: Cache: Liczba tranzystorów: Technologia produkcji: : Intel : Intel, AMD, OKI, Siemens : Czerwiec 1978 : 5 MHz : 12 MHz : - : 29,000 :3 mikrony Tabela 1. Podstawowe parametry procesora 8086 3.1.2. Procesor 8088 Dziesięć lat później, kiedy rynek został opanowany przez 8-bitowe systemy PC, firma INTEL zaprojektowała odpowiednik procesora 8086, a mianowicie 8088. Był to procesor hybrydowy, który umożliwiał pracę oprogramowania wykorzystującego rejestry 16-bitowe, mające dostęp do pamięci o rozmiarze 1 MB. Procesor 8088 stał się sercem systemów PC i PC XT. Częstotliwość zegara wynosiła w pierwszych modelach 4,77 MHz, w późniejszych 4,77/8 MHz a w ostatnich modelach 10 MHz. Procesor 8088 jest oszczędnościową wersją 8086 biorąc pod uwagę cenę 8- bitowych układów peryferyjnych z nim współpracujących. W zakresie zestawu rozkazów i trybów adresowania oba układy są w pełni zgodne. Oba przetwarzają dane 16-bitowe z tą tylko różnicą, że układ 8088 posiada wyprowadzone jedynie osiem bitów swojej 16-bitowej magistrali danych. Każda operacja dostępu do dwubajtowego słowa wykonywana jest w dwóch etapach. Polecenie przesłania przykładowego 16-bitowego słowa z pamięci do akumulatora AX podzielone jest przez sprzęt w niewidoczny dla oprogramowania sposób na dwie operacje jednobajtowe na rejestrach AH i AL., niezależnie od tego, czy dotyczy ono parzystego, czy nieparzystego adresu w pamięci. 21

Rysunek 8. Architektura procesora 8088 Następną różnicą w stosunku do procesora 8086 stanowi zredukowana do 4 bajtów długość kolejki rozkazów. Kolejka ta jest uzupełniana jednocześnie z wykonywaniem rozkazu już przy ubytku jednego bajta. Czas dostępu do bajta pamięci wynosi cztery cykle zegarowe. Rysunek 9. Procesor 8088 22

Projekt: Produkcja: Data wprowadzenia: Częstotliwość zegara: Maksymalna częstotliwość: Cache: Liczba tranzystorów: Technologia produkcji: : Intel : Intel, AMD, Fujitsu, SAB : Czerwiec 1979 : 4 MHz : 12 MHz : - : 29,000 :3 mikrony Tabela 2. Podstawowe parametry procesora 8088 3.1.3. Procesor 80286 Pod względem budowy wewnętrznej procesor 80286 nie różni się w istotny sposób od swoich poprzedników. Wprowadzono jedynie tzw. chroniony tryb pracy (ang. Protected Mode). Rolą tego trybu pracy jest sprzętowa realizacja mechanizmu kontroli dostępu do określonych obszarów pamięci. Mechanizmy te znajdują zastosowanie w pracy wielozadaniowych systemach operacyjnych. Układ 80286 dysponuje specjalnym, dodatkowym zestawem rozkazów przeznaczonych to tego trybu pracy. Dodatkowo w trybie rzeczywistym (ang. Real Mode) procesor dysponuje listą rozkazów zgodną z 8086, poszerzoną o dodatkowe nowe. Poszerzona do 24 bitów magistrala adresowa pokrywa przestrzeń adresową 16 MB. Z tak dużej pamięci można korzystać w trybie chronionym procesora. W trybie rzeczywistym natomiast magistrala dysponuje adresowalnym obszarem pamięci zgodnym z 8086, tj. 1 MB. Sposób generacji adresu fizycznego odbywa się w identyczny sposób jak w przypadku wcześniejszego procesora. W trybie rzeczywistym układ 80286 zachowuje się jak szybki 8086. Zwiększenie prędkości uzyskano poprzez zwiększenie do 25 MHz maksymalnej częstotliwości taktującej, poprawki w konstrukcji wewnętrznej procesora, zmodyfikowanie magistrali poprzez krótsze cykle obsługi. 23

Rysunek 10. Architektura procesora 80286 Układ 8086 miał możliwość samodzielnego wytwarzania sygnałów sterowania magistralą, co pozwalało na rezygnację z udziału kontrolera 8288. Procesor 80286 nie ma takiej możliwości i musi współpracować z odpowiadającym mu kontrolerem magistrali 80288. Rysunek 11. Procesor 80286 24

Projekt: Produkcja: Data wprowadzenia: Częstotliwość zegara: Maksymalna częstotliwość: Cache: Liczba tranzystorów: Technologia produkcji: : Intel : Intel, AMD, Harris, SAB : Luty 1982 : 6 MHz : 25 MHz : - : 134,000 :1,5 mikrona Tabela 3. Podstawowe parametry procesora 80286 3.1.4. Procesor Intel386 Procesor 80386 to pierwszy 32-bitowy procesor z rodziny x86 opracowany przez firmę Intel. Później, odpowiedniki tego procesora produkowały również firmy AMD oraz VIA (Cyrix). Architektura tego procesora została opracowana jeszcze zanim Intel wypuścił na rynek procesory poprzedniej serii 286, jednak procesor był zbyt skomplikowany, aby go w tamtym czasie wyprodukować. Podstawowa wersja układu 80386 (oznaczona później symbolem DX) charakteryzowała się 32-bitową magistralą adresową oraz 32-bitową magistralą danych. Procesor ten wymagał więc, aby komponenty płyty głównej również działały w architekturze 32-bitowej. Z tego powodu, a także z braku konkurencji, procesory 386 były bardzo drogie. Procesor 80386 w stosunku do poprzednich przedstawicieli rodziny x86 posiada rozszerzone do 32-bitów rejestry ogólnego przeznaczenia (w stosunku do wersji 16-bitowych dodano do nazwy przedrostek "E": EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP), rejestr EIP (IP - ang. Instruction Pointer - wskaźnik bieżącej instrukcji) oraz rejestr flagowy EFLAGS. W procesorze dodano także rejestry kontrolne CRx. 386 otrzymał również nowe tryby adresowania i w odróżnieniu od wersji poprzednich, rejestry ogólnego przeznaczenia mogły być używane niemalże dowolnie. Pozostało jednak użycie rejestru ECX do obsługi pętli, oraz par rejestrów DS:ESI oraz ES:EDI w instrukcjach łańcuchowych. 25

Rysunek 12. Architektura procesora 80386 Procesor 80386 może pracować w trzech trybach: rzeczywistym, chronionym i wirtualnym. W 32-bitowym trybie chronionym, procesor 386 może adresować liniowo do 4GB pamięci. W stosunku do 80286 usprawniono przełączanie trybów. W 80286 powrót z trybu chronionego do rzeczywistego wiązał się z koniecznością resetu procesora, co trwało dosyć długo. W 80386 powrót nie wymaga resetu procesora i z tego powodu jest o wiele szybszy. W późniejszym czasie, pod naciskiem konkurencji ze strony AMD i Cyrixa, Intel wprowadził nowy model - tańszą wersję, i386sx z ograniczoną do 24-bitów magistralą adresową i do 16-bitów magistralą danych. Wewnętrznie procesory były całkowicie zgodne, jednak SX był dużo tańszy i mógł współpracować z tańszymi płytami głównymi. Niższe były też zwykle prędkości zegara komputerów wyposażonych w 386SX. W związku z udostępnieniem tego okrojonego układu, wersje w pełni 32- bitowe oznaczono symbolem DX. Procesory 386 w tej wersji nie były dużo szybsze niż 286. Pełna zgodność z 32-bitowym 386DX była zaletą, jednak w tamtych czasach i tak większość oprogramowania nie była w stanie tego wykorzystać. 26

Rysunek 13. Procesor 80386 DX Projekt: Produkcja: Data wprowadzenia: Częstotliwość zegara: Maksymalna częstotliwość: Cache: Liczba tranzystorów: Technologia produkcji: : Intel : Intel, AMD, C&T, IBM : Czerwiec 1985 : 16 MHz : 40 MHz : - : 275,000 :1,5 mikrona oraz 1 mikron Tabela 4. Podstawowe parametry procesora 80386 3.1.5. Procesor Intel486 Intel 80486 (poprawna nazwa handlowa i486, zrezygnowano z cyfr 80 na początku, w przypadku układu idx4 zrezygnowano także z cyfr 486) to mikroprocesor CISC, który był ostatnim procesorem Intela którego nazwa była wyłącznie numeryczna. Z punktu widzenia oprogramowania, i486 był praktycznie identyczny do 80386, otrzymał tylko on kilka dodatkowych instrukcji (późniejsze wersje więcej, w tym np. CPUID), jednak architektura wewnętrzna i486 była wyraźnym krokiem naprzód. Otrzymał zunifikowany cache na dane i instrukcje (o pojemności 8kB, lub 16kB w wykonaniu IBM i w układach AMD 486DX4, nazywanych AMD 5x86), 27

koprocesor FPU i poprawiony interfejs szyny danych. Wszystkie usprawnienia spowodowały, że i486 był mniej więcej dwukrotnie szybszy od podobnie taktowanego 80386 (i486 wykonywał większość instrukcji w dokładnie 1 takcie zegara). Niemniej, najtańsze i najbardziej powolne modele i486 (16 i 20 MHz SX) były wolniejsze od najszybszych 80386 (AMD 40MHz, układy 486DLC). W kwietniu 1989 wprowadzono wersję z zegarem 25 MHz, w maju 1990 33 MHz, a wersja taktowana do prędkości 50 MHz pojawiła się w czerwcu 1991. Wersja 50MHz była do czasu pojawienia się procesora Pentium 60/66 niedoścignionym wzorem wydajności w zakresie dostępu do pamięci w zastosowaniach serwerowych (idx4 pojawiło się po premierze Pentium 60/66). Rysunek 14. Architektura procesora i486 Produkowano kilka wersji i486. W zależności od wersji, zegar zewnętrzny miał prędkość 16, 20, 25, 33, 40 lub 50 MHz. Praca przy 50MHz wymagała najwyższej jakości płyt głównych. Dla procesora i486 opracowano także dodatkowy koprocesor Weitek 4167, będący szybszą wersja przeznaczonego dla 80386 koprocesora 3167. Koprocesory Weitek były bardzo drogie, jednak dawały 28

kilkunastokrotny przyrost prędkości w porównaniu z koprocesorami serii x87, pozwalając dodatkowo na równoległe wykorzystanie 3 jednostek arytmetycznych (CPU + 2 różne FPU). Rysunek 15. Procesor i486 DX2 50 Projekt: Produkcja: Data wprowadzenia: Częstotliwość zegara: Maksymalna częstotliwość: Cache: Liczba tranzystorów: Technologia produkcji: : Intel : Intel, IBM, Texas Instr., AMD i Cyrix : Kwiecień1989 : 16 Mhz : 50 Mhz : 8 kb, 16 kb : 1,2 miliona : 1 oraz 0,8 mikrona Tabela 5.. Podstawowe parametry procesora i486 3.2. Procesory Intel 3.2.1. Rodzina Pentium Procesory tej rodziny stanowią bardzo liczną grupę. Pierwsze modele tych procesorów już od dawna nie są obecne na rynku. Były one zasilane napięciem 5V i osiągały częstotliwość do 66 MHz. Kolejna grupa (P54C) pracowała już przy zasilaniu 3,3 V, a częstotliwość taktowania jądra procesora sięgała 200 MHz. 29

Rysunek 16. Schemat blokowy procesora Pentium Główne zmiany w porównaniu z 486 to: architektura superskalarna Pentium został pierwszym procesorem CISC, w którym użyto typowego dla konkurencyjnej architektury RISC rozwiązania zwanego "potokami" (ang. pipelines). Jeden potok "U" potrafiący wykonać każdą instrukcję, a drugi "V" potrafiący wykonywać jedynie najprostsze, najczęściej używane komendy, co pozwalało Pentium na wykonywanie więcej niż jednej instrukcji w czasie pojedynczego cyklu. Pierwsze połączenie architektury x86 i RISC sygnalizowało, że jest możliwe połączenie tych dwóch rozwiązań tworząc procesory "hybrydowe". Pentium był logicznie dwoma i486 korzystającymi ze wspólnego zestawu rejestrów i magistrali, wykonującymi pojedynczy program. Czasy wykonania większości operacji były podobne z i486 (większość instrukcji w 1 takt), jednak procesor był w stanie wykonywać efektywnie 2 instrukcje równocześnie, o ile nie były one złożone i od siebie zależne. W praktyce działo się tak przez 20-30% czasu przy 30

niezoptymalizowanym kodzie; 64-bitowa szyna danych. Wszystkie główne rejestry pozostały 32-bitowe, ale podwojono ilość informacji pobieranej z RAM-u; zestaw instrukcji MMX (dodane w późniejszych modelach) prosty zestaw instrukcji SIMD pomocny w obróbce aplikacji multimedialnych; rozdzielenie cache na cache instrukcji i danych i podwojenie jego wielkości (2x 8kB i 2x 16kB w wersji MMX); bufory zapisu zwiększające prędkość współpracy z cache i magistralą (dodatkowo podwojone w wersji MMX); Dodatkowe 4 linie adresowe (praktycznie nieużywane); dopiero w Pentium Pro pojawiły się skuteczne mechanizmy adresowania z ich użyciem; jednostka branch prediction do przewidywania skoków (80% skuteczność, z powodu błędu; w Pentium MMX zmieniona na jednostkę z Pentium Pro z 90% skutecznością); wyższa częstotliwość taktowania szyny (początkowo 60 i 66MHz); przeprojektowany koprocesor (5-6x wydajniejszy niż w i486). Rysunek 17. Architektura procesora Pentium Nowa architektura Pentium oferowała mniej więcej dwukrotnie większą moc obliczeniową w porównaniu z intelowskimi 486. Najszybsze modele 486 produkowane później miały prawie taką samą wydajność jak Pentium pierwszej 31

generacji, a niektóre zaawansowane klony 486 produkowane przez AMD równały się wydajnością z Pentium 75. Dwa pierwsze modele Pentium miały częstotliwość taktowania 60 i 66 MHz, później pojawiły się wersje 75, 90, 100, 120, 133, 150, 166, 200 i 233 MHz oraz 266MHz (233 tylko w wersji MMX, 266 tylko w wersji MMX Mobile). Na bazie Pentium powstały także procesory Pentium OverDrive służące do upgrade'u systemów 486, miały one prędkości 63 i 83 MHz i 2x większy cache (2x 16kB) z uwagi na problemy z wydajnością spowodowane wolniejszą i węższą szyną. Rysunek 18. Procesor Intel Pentium Projekt: Produkcja: Data wprowadzenia: Częstotliwość zegara: Maksymalna częstotliwość: Cache: Liczba tranzystorów: Technologia produkcji: : Intel : Intel : Marzec 1993 : 60 MHz : 233 MHz (266 MHz) : 8 kb : 3,1 miliona : 0.80, 0.35, 0.28, 0.25 mikrona Tabela 6. Podstawowe parametry procesora Intel Pentium 32

3.2.2. Pentium MMX Dalsze rozwinięcie rodziny Pentium stanowią modele z rozszerzeniem multimedialnym MMX. Oprócz zmian spowodowanych wprowadzeniem potoku przetwarzającego MMX, powiększone zostały rozmiary pamięci podręcznych kodu i danych: z 8 do 16 kb. Rysunek 19. Schemat blokowy procesora Pentium MMX Cechą charakterystyczną procesorów Intel Pentium MMX jest podwójne napięcie zasilające (począwszy od wersji 166). Układy odpowiedzialne za współpracę z magistralami wejścia wyjścia zasilane są innym napięciem, niż rdzeń obliczeniowy. 3.2.3. Pentium Pro Procesor został zaprezentowany w roku 1995 i choć był taktowany jedynie częstotliwością 133 MHz, już wtedy osiągał wydajność prawie dwukrotnie większą od Pentium 133. 33

3.2.4. Pentium II 3.2.5. Pentium III 3.2.6. Pentium IV 3.3. Procesory AMD 3.3.1. Rodzina K5 3.3.2. Rodzina K6 3.3.3. Rodzina K6-2 3.3.4. Rodzina K6 III 3.3.5. Rodzina Athlon Spis treści Wstęp 1. Historia i budowa komputera 1.1. Historia komputera 1.2. Pierwsza dekada XXI wieku 1.3 Koncepcja von Neumana 1.4 Elementy składowe komputera 2. Budowa i zasada działania procesora 2.1. Elementy składowe procesora 2.2. Działanie procesora 2.3. Nowoczesne technologie procesorowe 3. Architektura procesorów dla komputerów PC 3.1. Starsze procesory x86 3.2. Procesory Intel 3.3.Procesory AMD 3.4. Współczesne procesory Intel 3.5. Współczesne procesory AMD 4. 34

Literatura [1] Wprowadzenie do informatyki - Notatki do wykładu dla I roku astronomii, Tomasz Kwiatkowski, Obserwatorium Astronomiczne UAM, Poznań, 1993 [2] Organizacja i architektura systemu komputerowego, Williams Stallings, WN-T, Warszawa, 2000 [3] Od architektury CISC do EPIC ( ATMosfera nr 1/2005) [4] Anatomia PC, Piotr Metzger, Helion, Gliwice, 2001 [5] Mikroprocesor w pytaniach i odpowiedziach, Krzysztof Sacha, Andrzej Rydzewski, WN-T, Warszawa, 1987 [6] Mikroprocesory, mikrokomputery, mikrosystemy, Antoni Niederliński, WSiP, Warszawa 1991 [7] http://www.amd.com [8] http://www.intel.com 35