Procesor a jeho konstrukce. Vývojové typy, činnost procesoru První obvod nazvaný mikroprocesor uvedla na trh firma Intel v roce 1970. Šlo o 4bitový procesor Intel 4004. V roce 1972 byl MCS8 prvním 8bitovým mikroprocesorem. V roce 1972 také došlo k rozšíření datové sběrnice 4004 na 8 bitů - vznikl procesor 8008. V roce 1974 přišla firma Intel s typem 8080, který měl ale malou zatěžovací schopnost vstupů a výstupů, proto byl vyráběn ve verzi 8080A.: 16b adresová sběrnice - 64kB paměti 2 Mhz - 400 000 operací/s Výrobou se začali zabývat i další výrobci (Texas Instruments, NEC, Hitachi), 1975 uvedla Motorola svůj 8bitový procesor MC 6800 (Atari, Amiga, Apple) 1976 Zilog Z-80 na bázi zdokonalení procesoru Intel 8085A - ZX-Spectrum Intel 8085 1976 1978 procesor Intel 8086 se stal základem výrobní řady 80x86 16b datová sběrnice 20b adresová sběrnice 5,8,10 Mhz 0,33 - 0,66 MIPS 1979 procesor Intel 8088 znamenal technicky krok zpět, šlo o marketingový tah. Byly jím vybavovány počítače označované IBM PC (IBM5150) a později IBM PC XT vnitřní datová sběrnice 16b, ven vyvedena 8b - sérioparalelní přenášení slov, menší výkon než 8086 Architektura procesoru 8088 (8086): Obsahuje dvojici subprocesorů EU - Execution Unit - výkonný, vykonává instrukce BIU - Bus Interface Unit - jednotka styku se sběrnicí, vybírá instrukce, čte operandy, zapisuje výsledky, přednačítá 4 byty instrukcí Nevýhody procesoru 8088: málo paměti (1 MB), nízký výpočetní výkon, nemá obvodovou podporu pro multitasking, cyklus sběrnice trval 4 a více period hodin.
Intel 80286 1982- 16bitový procesor 2. generace ( vychází z 8086, ale asi 2,3 x výkonější) 24b adresová sběrnice (16MB reálně, virtuálně až 1GB) 4 stupňové zřetězení virtuální paměť až 1GB pro multitasking 16b datová sběrnice cyklus sběrnice trval 2 periody hodin 8 - 25 Mhz 130000 tranzistorů Byly jím vybavovány počítače IBM PC AT Architektura 286: 4 zřetězené subprocesory BU - Bus Unit - jednotka styku se sběrnicí, obsahuje registry, budiče datové a adresové sběrnice, obvody pro generování řídících signálů sběrnice a její řízení, obvody pro komunikaci proc. - koproc. a frontu pro předvýběr 6 bytů instrukcí IU - (Instruction Unit) - jednotka dekódování instrukcí dekóduje instrukce připravené ve frontě BU a obsahuje i frontu 3 instrukcí připravených ke zpracování velmi urychluje činnost procesoru. EU - Execution Unit - výkonná jednotka, výkonnější 86 AU - Adress Unit - adresovací jednotka, vytvoření fyzické adresy trvá 1 takt díky vyrovnávací paměti dnes se používá jako řídící obvod spotřební a domácí elektroniky
2 módy činnosti: mód reálné paměti - 1MB, jako 86, ale rychlejší díky architektuře mód chráněné virtuální paměti - programy jsou od sebe izolovány, jako by měli celý systém pro sebe software v této době zaostával za hardwarem, teprve postupně se začaly objevovat doplňky k MS DOSu - správa extended a expanded paměti a v roce 1988 byly uvedeny MS Windows
INTEL 80386 představen 1985 - plně 32bitový procesor 1986 8036DX 20 - 40 MHZ 275000 tranzistorů příkon 1,8W 2,5* výkon 80286 patice PGA (132) 32b adresová sběrnice - 4 GB reálné paměti 3 módy činnosti: mód reálných adres kvůli kompatibilitě s 86/88 1MB reálné paměti mód chráněné virtuální paměti 4MB r.p. 64TB v.p. mód virtuálního procesoru 86/88 Architektura 386: 6 zřetězených subprocesorů BIU - zabezpečuje veškerou komunikaci procesoru s okolím IPU - Instruction Prefetch Unit - přednačítá frontu 16 bytů instrukcí (průměrná délka instrukce 32b) IDU - Instuction Decode Unit - vyzvedne z fronty předvybraných instrukcí instrukci, dekóduje ji a instrukci pak umístí do fronty dekódovaných instrukcí (3 instrukce) Také upozorňuje BIU na instrukce, které se jí budou týkat. (podobá se 286) EU - výkonná jednotka - její součástí je ALU (obsahující nejen sčítačku, ale i násobičku a děličku) a soubor univerzálních registrů SU - Segmentation Unit - jednotka segmentace, odpovídá svou funkcí jednotce adresace u 286 (AU) v módu virt. paměti převádí adresu virt. na lineární, v módu reálných adres provádí výpočet fyzické paměti PU - Paging Unit - stránkovací jednotka, pracuje pouze v módu virt. paměti, pokud je aktivní, mechanismus stránkování převádí lineární adresu na fyzickou 386 vyráběly i jiné firmy (AMD, Cyrix) ve své době byla 386 poměrně drahá, proto se prodávala zjednodušená varianta INTEL 80386SX skoro shodný s DX, navržen pro montáž do desek 286, ven vyvedena 16b datová sběrnice, adresová sb. 24b - 16 MB paměti 16-40 Mhz Numerické koprocesory - obvody specializované na výpočty s reálnými čísly: 80387SX, DX
INTEL 80486 1989 80486DX sdružuje na čipu 386DX+ 387DX (FPU) +8kB L1cache (data a instrukce dohromady) 25-50 Mhz (25, 33, 40 ,50) 22-44 MIPS, patice PGA (168 vývodů) cache přednačítá informace po dvojslovech 32bitů
využívá 5 stupňový pipelining prvky RISC - nejčastější instrukce má přímo zahrnuty v logických obvodech a nepotřebuje na ně tedy mikroprogram instrukční sada doplněna o instrukce pro multiprocesorové systémy a pro správu L1 a L2 cache způsob adresování jako 80386 486 vyráběli i jiné firmy: AMD 97-98 % výkonu Intelu, Cyrix 95% (cache 16kB, o 10% pomalejší, o 10-15 % rychlejší koprocesor) 80486SX nemá koprocesor, šlo dokoupit externí numerický koprocesor 487SX = což byl vlastně další 486 DX 80486DX-2 dvojnásobná vnitřní frekvence (overdrive) 25-40Mhz (50-80Mhz)(20,25,33,40) 40-80 MIPS výrazně levnější 3,3V 486 DXL (LV - low voltage) 80487SX-2 25(50) Mhz 80486DX-4 trojnásobná frekvence 25,33 (75,100 Mhz) 16kB cache 3,3V Cyrix, AMD (120Mhz) , ale Pentium je dnes levnější nahoru
PENTIUM (80586) uveden v květnu 1993 vznikl ještě před uvedením 486/DX4 první superskalární procesor podpora L2 cache až 512 kB 3,1 mil. tranzistorů první generace: původně 60,66 Mhz 5V - příliš se zahříval, technologie 0,8 um pouzdro PGA 273 pro SOCKET 4 102,112 MIPS druhá generace: 1994, 75, 90 100 Mhz (ext. 50, 60, 66) 120-160 MIPS 3,3V technologie 0,6 um pouzdro PGA 296 pro SOCKET 7 1995 120, 133, 150, 166 MHz (ext. 60,66 Mhz) 180-300 MIPS 3,3V 64b vnější datová sběrnice - až po paměť cache - proto nutnost 64b RAM = 2*SIMM, nebo 1*DIMM 32b adresová sběrnice rozdělení vnitřní cache na paměť instrukcí a dat (2*8kB)
zdvojení výpočetních řetězců - proud "u" a proud "v" zdokonalený numerický koprocesor (FPU) jednotka předvídání skoků (BTB) 256 bitů fronta instrukcí Cyrix od 1995 AMD od 1996 5x86 funkčně kompatibilní s Pentiem, vývodově se 486
INTEL PENTIUM MMX počátkem 1997 150Mhz (jen pro notebooky), 166, 200, 233 Mhz technologie 0,35 um soubor instrukcí byl rozšířen o skupinu instrukcí, které stejným způsobem zpracovávají určitý blok dat. - MMX (Multi Media eXtension) - technologie SIMD (Single Instruction Multiple Data využívají je nejvíce grafické aplikace numerická EU jednotka doplněna o jednotku zpracovávající MMX >> zrychlení o 30% a o 10% u aplikací nepoužívající MMX nové pouzdro - používá 2 frekvence napětí (BU 3,3-3,55V, jádro 2,7-2,9V), proto vyžaduje zvláštní desku
PENTIUM PRO 1995 Intel PENTIUM PRO (P6) (686) 150,166,180,200 Mhz (ext. 60,66) - pouzdro s 387 vývody pro Socket 7 = nekomp. s Pentiem - dvě samostatná jádra - samotný procesor a L2 cache 256, 512 kB, 1MB připojená vnitřní 64b sběrnicí na frekv. procesoru (architektura DIB) - 5,5 miliónu tranzistorů, 256 kB (+15,5 mil.), 1MB (celkem 68 mil.), 0,6 um architektura je bližší k AMD nez k Pentiu vhodný pro víceprocesorové systémy (4p) díky integraci L2 cache 3 instrukce současně 14 násobný pipelining Dynamic Execution: • • •
1. předpověd skoků 2. analýza toku dat 3. spekulativní provádění instrukcí mimo pořadí - v případě, že potřebná data nejsou ještě v paměti cache, začne vykonávat další instrukci - může tak odložit až 4 instrukce
nevýhody: nepodporuje MMX vyžaduje 32b aplikace a OS (Windows NT) jinak zpomaluje proto se používá pro servery a grafické stanice napětí procesoru se určovalo pomocí 4 vývodů (VID- Voltage Identification), většina používala 3,3 nebo 3,1 V nahoru
AMD - K5 byl představen firmou AMD v červnu 1996 - čtyřproudové superskalární jádro s šesti vykonávacími jednotkami uspořádanými do pětistupňové posloupnosti 75, 90, 100, 120, 133, 166 MHz - 16 kB instrukční L1 cache - 8 kB datová L1 cache - techniky pro předpověď větvení a provádění instrukcí mimo pořadí pouzdro SPGA 296 - kompatibilita s Pentiem 0,35 um technologie řazen do páté generace - označován PR - Pentium Rating př. AMD-K5 - PR133 ABQ A= typ pouzdra B= pracovní napětí (3,525 nebo F=3,3V) Q= teplota skříně (Q=60, R=70, X=65 C) jiná architektura, podobná s Pentiem Pro, pasuje do patice pro Pentium, ale deska ho musí podporovat 6 EU: specializované 2* ALU, (4 proudy) = provádí jednoduché celočíselné A a L operace FPU = instrukce v plovoucí řádové čárce (matem.pr.) JUMP = zpracování instrukcí skoků, spolupracuje s jedn. předv. skoků LOAD = čtení z paměti STORE = zápis do paměti
INTEL PENTIUM II uveden v polovině roku 1997 konstrukčně vychází z Pentia Pro, bez problémů pracuje s 16b aplikacemi + doplněn o MMX instrukce cache L1 2*16kB cache L2 512 kB v druhé části slotu pracuje jen na polovinčí frekvenci procesoru nové pouzdro, nový SLOT1 frekv. 233, 266, 300, 333 (ext. 66Mhz) 233 - 400, 450 Mhz (ext. 100Mhz) nižsí napájení jádra (2V a 2,8V u starších) INTEL CELERON duben 1998 levná verze Pentia II - nemá integrovanou L2 cache oblíbený, dobrý v pohyblivé čárce, jinak slabší 266, 300 Mhz SLOT1 INTEL CELERON A - MENDOCINO má L2 cache 128 kB na plné pracovní frekvenci 300, 433 Mhz, 500 jiná patice a pouzdro PPGA 370 (SOCKET 370), existuje redukce ze slotu1 umožňuje víceprocesorové systémy INTEL PENTIUM II XEON září 1998
L2 cache na plné frekvenci (512 kB, 1 MB, 2MB) 400, 450 Mhz (ext. 100 Mhz) větší než PII, proto nová patice SLOT2 spolupráce až 4 xeonů - vhodné do výkonných serverů nahoru
INTEL PENTIUM III 450, 600 Mhz, 1 Ghz (ext. 100, 133) cache stejná jako u P II - 512 na poloviční frekvenci zlepšená instrukční sada KNI (Katmai New Instruction) nebo SSE (Streaming SIMD Extension) 70 nových instrukcí pro blokové zpracování dat, 3D operace, řízení cache paměti vícenásobná predikace větvení INTEL PENTIUM IIIB (CAMINE) pro externí frekvenci 133 Mhz INTEL PENTIUM IIIE (COPERMINE) vyráběn technologií 0,18 m namísto 0,25 nižší napájení jádra 1,6V paměť L2 cache jen 256 kB, ale na plné frekvenci Intel Pentium IIIEB pro 133 Mhz ext. další typy s paticí FCPGA INTEL PENTIUM III XEON stejné odlišnosti: variabilní L2 cache na plné frekvenci procesoru SLOT 2, 500 - 1000 MHz rozsáhlá podpora multiprocesoringu INTEL CELERON II vychází z PII, o 10 % lepší než Celeron FCPGA patice jádro 1,5 V L2 cache 128 kB na plné frekv. pro 66 Mhz ext. fr., vysoký násobitel (až 12!), dobré přetaktování
AMD K-7 ATHLON vícenásobný dekodér instukcí 80x86, devět celočíselných EU, tři numerické EU, tři adresovací jednotky další instrukce pro 3D výpočty (3D Now!) pro ext. frekv. až 200 Mhz L1 128 kB, L2 512 - 8 MB 1 Ghz (200 ext.) vyžaduje speciální desku, a paměti pracující při 200 Mhz vysoký příkon - nutno dochladit SLOT A (EV6) Athlon THUNDERBIRD 0,65 - 1,3 GHz 266 ext. frekvence velmi topí - podobně jako P IV asi 70 W Socket A , PPGA 462
Konkurencí Celeronu je AMD DURON, což je v podstatě Athlon s cache zmenšenou na 64 kB, a s frekvencí FSB 100 MHz (500 - 900) AMD chystá 64bitovou řadu procesorů Hammer nahoru
INTEL PENTIUM 4 - WILLAMETTE 32 bitový, nová architektura, technologie NetBurst, podobná Itaniu 400 Mhz ext. (4*100), ca 1,3 - 1,8 Ghz int. extrémní zřetězení vyloučeny jednotky pro překlad instrukcí, místo nich další cache L1 - výhodné při chybné předpovědi skoku L2 256 kB 144 nových instrukcí Pentium 4 - Northwood 2,2 - 3,5 GHz L2 512 kB, 0,13 um provedení PGA 423, později PGA 478
INTEL ITANIUM plně 64bitový procesor dovoluje adresovat až 17 179 869 184 GB paměti! 128 registrů celočíselných 128 s plovoucí řádovou čárkou osm EU - 4* ALU, 2* FPU, JUMP, STORE desetistupňový pipelining nástupcem bude procesor McKinley Všem, kteří se pročetli až sem, doporučuji odbornou literaturu, kde najdou totéž a lépe zpracované Literatura
Procesory obecně: Procesor (CPU) je mozek počítače. Některé instrukce vykonává sám, některé svěřuje jiným zařízením. Procesor je synchronním zařízením, pracuje v souvislosti s hodinovým signálem CLK (clock) - (takty, periody hodin). Procesor se skládá z milionů maličkých tranzistorů, nanesených fotografickou cestou na křemíkový plátek. Tyto tranzistory umějí jediné - nastavit se do polohy "zapnuto" a "vypnuto", tedy nuly a jedničky. Díky tomu je možné realizovat matematické operace v binární soustavě. Některé také slouží k uchovávání dat. Jádrem procesoru je logický obvod, který dokáže zpracovat sadu mikroinstrukcí. Napsat program v mikroinstrukcích není jednoduché, proto se procesory vybavují sadou instrukcí a obsahují program pro převod instrukcí na mikroinstrukce. Jádrem procesoru je ALU (Aritmeticko - Logická Jednotka), která provádí výpočty. Procesor obsahuje také ŘADIČ, který na základě instrukcí činnost procesoru řídí (rozhoduje o tom, kudy potečou informace). Dále obsahuje BLOK REGISTRŮ, nazývaný také zápisníková paměť. Jsou zde REGISTRY UNIVERZÁLNÍ - DATOVÉ (slouží k ukládání operandů, mezivýsledků, výsledků) a REGISTRY S PEVNĚ STANOVENÝM VÝZNAMEM, např.: PC - Program Counter (IP - Instruction Pointer) - obsahuje adresu instrukce, která bude čtena z paměti jako další v pořadí F, FL, FLAGS - registr příznaků (ukazuje např., že výsledek byl kladný, záporný, nepodařilo se jej uložit apod.) SP - Stack Pointer - ukazatel zásobníku, zásobník = zvláštní část paměti, do které se data ukládají tak, že čtena jsou ta, která byla uložena poslední. Dvě koncepce procesorů z hlediska instrukční sady: CISC - Complete Instruction Set Computer - co nejúplnější sada (Intel, AMD, Cyrix) RISC - Reduced ISC - vychází z předpokladu, že na 80 % operací stačí 20 % instrukcí. Jednodušší, levnější, rychlejší, vyžadují ale lepší dovybavení počítače. Power PC - IBM, Apple, Motorolla. Uplatňují se u velkých počitačů, nebo jako jednoúčelové (kalkulačky apod.). Komunikace procesoru s I/O zařízeními Přímá programová obsluha - po dobu, kdy zařízení pracuje a není k dispozici, vkládají se do režimu procesoru čekací takty, pokud je zařízení připraveno pro další práci, pošle procesoru tzv. handshake (z ang. podání ruky). Toto se vyplatí jen pokud je zařízení rychlé. Např. znak na jehličkové tiskárně trvá 5ms, za tu dobu stihne procesor při 66 Mhz asi 160 000 instrukcí. Obsluha s přerušením - INTERUPT - procesor např. vyšle tiskárně znak a provádí jiný program, čeká na INTR (Interrupt Request = požadavek přerušení), když ho tiskárna pošle, uloží se postavení procesoru, zjistí z řadiče přerušení, které zařízení INTR poslalo a procesor provede rutinu přerušení = pošle další znak, pak se vrátí k programu. (vhodné pro pomalá zařízení) Pozn.: Systém přerušení - vektorové přerušení, tabulka vektorů přerušení jev operační paměti - n-té přerušení spustí přes n-tý vektor n-tý program. Možnost zákazu přerušení. Komunikace prostřednictvím přímého přístupu do paměti (DMA- Direct Memory Acces) Řadič vyšle signál HOLD - procesor se odpojí od sběrnice, pokud ji používá a dá signál HLDA, DMA (řadič přerušení) převezmě řízení přenosu dat, po skončení deaktivuje HOLD, procesor se připojí na sběrnice a deaktivuje HLDA. Možnosti zrychlení procesoru: Pipelining - zřetězení rozdělení instrukcí na několik částí a jejich současné zpracovávání Superskalární procesory paralelní zpracování - zpracovávají více instrukcí najednou 80486 - pouze zřetězený, ostatní zřetězené superskalární Out-of-order execution (zpracovávání instrukcí mimo pořadí) - k tomu je potřeba malá vyrovnávací paměť mezi dekodérem instrukcí a řadičem, do které dekodér ukládá přeložené instrukce. Z ní pak řadič vybírá potřebné instrukce. To se však děje bez ohledu, v jakém pořadí šly instrukce v programu. Branch prediction (předpovídání větvení) a Speculative execution (spekulativní provádění)- protože programy se často větví stejným způsobem, jednotka pro předpověď větvení je schopna odhadnout, kam se program bude ubírat a nechá přednačíst instrukce z předpokládané větve. Přetaktování procesoru: Procesory mají určitou výkonovou rezervu. Protože např. u Pentia na 333Mhz a 366 Mhz se jedná o shodnou součástku, je možné procesor přetaktovat nastavením vyšší pracovní frekvence. To však způsobí větší zahřívání procesoru a je potřeba ho dochladit (aktivní a pasivní chlazení). Přehřátí způsobuje nefunkčnost tranzistorů (zůstávají
otevřené) a generování obrovského množství chyb a nefunkčnost počítače. Po vychladnutí je procesor opět na chvíli schopen práce, pokud nedojde k jeho fyzickému zničení vysokou teplotou. Další části procesoru: Pamět cache L1, L2 - přednačítá data z operační paměti, neboť její komunikace s procesorem je rychlejší. Má svůj řadič. Sběrnice - soustava vodičů, adresová (čím širší, tím víc adres), datová, řídící. Motherboard musí nabízet dostatečnou šířku sběrnic. Frekvence - vnější (FSB) / vnitřní (FSB*multiplikátor) -nastavení pomocí jumperů na desce Napětí - bývalo 5V, nyní od 2,2- 5V nastavení pomocí jumperů na desce Patice - dříve byly procesory připájeny pájkou, dnes jsou montovány pomocí patic ZIF (Zero Input Force - vkládání nulovou silou) Kritéria hodnocení procesoru: Operace v pevné řádové čárce - základní výpočty, přesuny dat, důležité pro kanc. programy a souborové servery Operace v pohyblivé řádové čárce -matematické výpočty,, důležité pro CAD, DTP, hry… Technologie výroby - P5=0,35 mikronu, P60=0,25, 0,18, 0,16, 0,13 ...