Výrok „Počítače by jednou mohly vážit méně než 1.5 tuny.“ (časopis Popular Mechanics, 1949)
Procesory procesor nebo celé CPU (Central Processing Unit) je křemíkový čip, který řídí všechno dění v počítači je to mozek celého počítače skládá se z mikroskopicky velkých tranzistorů, které svým zapínáním a vypínáním provádějí výpočty frekvence spínání tranzistorů je obecná jednotka, která měří rychlost procesoru (v HZ) čím vyšší frekvence, tím vyšší výkon v dnešní době to však platí pouze už jen u architektonicky stejných procesorů, protože se procesory AMD a Intel architektonicky liší. Např. 2GHz Athlon 64 může být stejně výkonný jako 3,2GHz Pentium 4
Vývoj procesorů - zkratky f = frekvence D = šířka datové sběrnice A = šířka adresové sběrnice
Vývoj procesorů r.1971 I bitový r bitový 5000 tranzistorů, f = 500Hz až 2Mhz, D=8b, A=16b r bitový tranzistorů, f=5 až 10 Mhz, D=16b, A=20b r.198? bitový tranzistorů, f=12,5 Mhz, D=16b, A=24b
Intel 4004
Intel 8080
Vývoj procesorů r tranzistorů, f=33 Mhz, A=32b 2 modely: DX 32-bitový, navenek D=32b, uvnitř také 32b SX vnitřně 32-bitový, D=16b r.198? tranzistorů, f=50 Mhz, A=32b, D=32b 2 modely: DX s matematickým koprocesorem SX bez matematického koprocesoru (není připojen)
Vývoj procesorů r.1993 Pentium tranzistorů, A=32b, D=64b superskalární, 2 vyrovnávací paměti po 8kB jedna pro data, jedna pro instrukce kombinace technik CISC a RISC pozn:všechny předchozí typy (Intel) byli čistě CISC
Architektura u sekvenční – instrukce se zpracovávají jedna po druhé (starší typy do 486) u superskalární – dokáže zpracovat několik instrukcí najednou. Lze toho docílit : »zdvojením funkčních celků (pentia ) »promyšleným návrhem mikroprocesoru (celky pracují nezávisle na sobě) –zrychlujícím prvkem je pipelining –mechanismus zpracování instrukce jako superskalární (rozložení instrukce do více fází)
CISC a RISC jak vznikaly složité soubory instrukcí (CISC): požadavky programátorů požadavky z vyšších programovacích jazyků snaha zachovat kompatibilitu (přidat nové, ale nezrušit staré) technologické možnosti - počet tranzistorů může prudce vzrůstat
CISC a RISC negativní důsledky nárůstu počtu instrukcí: je třeba mít na mysli, že: 1) každá nová instrukce vyžaduje nový mikroprogram 2) pro značný počet instrukcí musí být dekodér několikaúrovňový => zpomalení 3) instrukce mají proměnlivý formát => složitý řadič 4) větší počet různých typů adresace
CISC a RISC co přinesl výzkum četnosti použití jednotlivých instrukcí? v 50% případů se používají pouze 3 instrukce v 75% případů se používá pouze 8 instrukcí četnost dalších instrukcí často dosahuje zlomku promile toto byly na konci 70-tých let hlavní impulsy pro vznik RISC RISC (Reduced Instruction Set Computer) Intel rozšiřoval množinu instrukcí až do i486
CISC a RISC Pentium už bylo kombinací RISC a CISC určit zda současný mikroprocesor je RISC nebo CISC není prakticky možné. Jedná se vždy o využití obou přístupů. Záleží na rozhodnutí výrobce či obchodní strategii kam procesor zařadí
Charakteristické znaky RISC 1. Minimální instrukční repertoár 2. Jednoduché způsoby adresace 3. Pevný formát instrukcí (většinou) 4. Vykonává instrukce v jednom strojovém cyklu (většinou) 5. Datové operace pouze nad registry 6. Styk s pamětí výlučně instrukcemi load/save 7. Zřetelná realizace instrukcí 8. Jednoduché instrukce 9. Obvodově řešený řadič 10. Velký počet pomocných registrů 11. Složité, dlouhé programy
Etapy vývoje RISC 1) – experimentální stroje, pouze procesor IBM 801 2) – první generace prakticky použitých strojů 3) Současnost– Mikrokontrolery PIC, Motorola, AVR u typičtí představitelé –Alpha (Digital) –PA-RISC (Hewlett-Packard) –PowerPC (IBM + Motorola) –MIPS (Silicon Graphics) –SPARC (Sun Microsystems)
Charakteristické znaky CISC 1. Rozsáhlý instrukční repertoár 2. Komplikovanější adresace – více způsobů 3. Různé formáty instrukcí (1-3B) 4. Výkon instrukce netrvá vždy stejně dlouho 5. Styk s pamětí obstarává více instrukcí 6. Problematické řetězení instrukcí 7. Málo pomocných registrů 8. Složité instrukce 9. Mikroprogramový řadič 10. Delší doba výkonu instrukce 11. Jednoduché, krátké programy
Výčet parametrů procesorů sada instrukcí (CISC x RISC) architektura šířka datové sběrnice [b] šířka adresové sběrnice [b] vyrovnávací paměti - počet, typy, velikosti [kB] registry - velikost, počet rychlost [MHz, GHz] velikost zpracovávaného slova [b] počet instrukčních kanálů - více než jeden => superskalární napájení [V] typ patice
Typy instrukcí aritmetické - ADD, INC, CPM, NEG, … logické - AND, OR, XOR, … bitové posuny a rotace - SHR, SHL, ROR, … přesun dat - MOV, IN, OUT, PUSH, POP, … řízení běhu programu - JMP, JCXZ, LOOP,… řídící - INT, CLI, STI, …
Instrukční sada u kromě základní instrukční sady může každý procesor disponovat speciálními instrukčními sadami, které přidávají vždy několik instrukcí z dané oblasti –MMX (pro multimediální instrukce) –3DNow (AMD procesory, pro 3D grafiku) –KNI (pro 3d aplikace) u problém těchto přídavných instrukcí je, že je musí umět používat programy !!!
Formát instrukce u instrukce se skládá ze tří částí : »1) operační znak (OZ) – definuje typ instrukce »2) doplněk operačního znaku – podává doplňující informace (např. délka operandu, modifikace adresy apod.) »3) adresní část – operandy nebo jejich adresy u u některých instrukcí mohou být doplněk OZ či adresní část vynechány –např. instrukce NOP (No Operation)
Adresování u je mechanismus, kterým mikroprocesor specifikuje adresy v paměti na nichž leží zpracovaná data u adresy můžeme rozdělit na : –1) zdrojová adresa –2) cílová adresa u dále podle umístění na : –1) explicitní (nachází se v adresní části instrukce) –2) implicitní (je definováno přímo operačním znakem)
Druhy adresování 1) přímý operand - MOV A, 05 2) přímá adresa - MOV A, (nn) - obsah adresy nn 3) nepřímá adresa - instrukce obsahuje adresu místa, kde se nachází přímá adresa 4) relativní adresování - a) bázové (použití bázového registru) b) indexové (indexový registr) 5) segmentové adresování - paměť je dělena na segmenty, adresa se vytvoří jako součet začátku segmentu a offsetu
Flag registr flagy = indikátory stavů poskytuje informace o stavu procesoru po poslední proběhnuté instrukci některé instrukce ho naplňují a některé naopak čtou jeho stav a podle něj se řídí (např. podmíněné skoky)
Flag registr D – direction – určuje směr při hromadných přenosech T – trap – umožňuje krokování I – interrupt – zakazuje či povoluje programová přerušení S – signum – znaménkový bit Z – zero – zda je výsledek nula H – half-carry – přenos mezi polovinou velikosti registru O – overflow – přetečení registru C – carry – přenos do vyššího řádu
Použité zkratky BIU – Bus Interface Unit EU – Execution Unit AU – Adress Unit BU – Bus Unit IU – Instruction Unit FPU – Floating Point Unit
8080
8086
80286
80386
80486