Úvod do problematiky návrhu počítačových systémů INP 2008 FIT VUT v Brně
Čím se budeme zabývat Budou nás zejména zajímat jednoprocesorové číslicové počítače: Funkce počítače Struktura propojení funkčních bloků Organizace součinnost, chápána dynamicky, časové řízení bloků počítače Realizace návrh a struktura bloků (např. ALU, řadič, cache, apod.) Měření výkonnosti Pozn.: Multiprocesory, paralelní systémy a nekonvenční počítače se na FIT studují v pokročilejších kurzech. Reprezentace dat, kódy Principy a algoritmy základních a složitějších aritmetických operací Paměti typy, paměťová hierarchie, řízení, Sběrnice typy, řízení, Periferní zařízení typy, připojování, obsluha Spolehlivost Cvičení obvodová realizace procesoru a jeho bloků Jazyk VHDL 2
Počítač (podle Wikipedie) Počítač je stroj, který podle předem připravených instrukcí zpracovává data. Typický současný počítač se skládá především z centrální procesorové jednotky schopnéřídit se posloupností instrukcí a ovládat další části počítače, dále ze zařízení pro ukládání dat (vnitřní a vnější paměť), vstup dat (např. klávesnice, myš, ) a výstup dat (např. monitor, počítačová tiskárna, ). Analogový počítač vs číslicový počítač Historie viz např. Wikipedie 3
ENIAC První elektronický počítač na světě byl postaven na Universitě státu Pensylvánie ve Filadelfii. Byl to elektronkový počítače ENIAC (Electronic Numerical Integrator and Calculator), který se programoval drátovými propojkami a přepínači, data se zadávala pomocí děrných štítků. Byl postaven během druhé světové války, ale informace o něm byla zveřejněna až v roce 1946. Teprve druhý počítač, dokončený na téže universitě v roce 1952 s označením EDVAC (Electronic Discrete Variable Automatic Computer), již byl řízen programem uloženým v paměti. Jeho koncepce se stala nejrozšířenější a nejznámější počítačovou architekturou. Poněkud neprávem se připisuje americkému matematikovi maďarského původu John von Neumannovi, přestože hlavními osobami projektu byli J. Presper Eckert a John Mauchly. 4
Von Neumannova architektura počítače řadič Blok vstupů I P, D P, D paměť D Blok výstupů ALU Řídicí signály P = program, D =data, I = instrukce Obvyklá terminologie Procesor = ALU + řadič Základní jednotka (CPU central processing unit) = procesor + paměť Počítač je univerzální (= může řešit jakoukoliv algoritmizovatelnou úlohu) má neměnnou strukturu změna chování se dosahuje nahráním programu Von Neumannův počítač má tzv. princetonskou koncepci ve společné paměti jsou data i programy Pozn.: Harvardská koncepce paměť programů a dat jsou odděleny 5
Von Neumannova architektura počítače (pokr.) Paměť je tvořena jednotlivými paměťovými místy s kapacitou jednoho slova, do kterých se dá zapisovat (W) a ze kterých se dá obsah číst (R) po zadání adresy toho místa. Adresa je daná pořadovým číslem paměťového místa. Program je tvořen posloupností instrukcí, které až na málo výjimek neobsahují data; data jsou uložena mimo program (program se nemodifikuje, data ano). Pořadí provádění instrukcí programu je sekvenční, s výjimkou provedení instrukcí skoku (B), podmíněného skoku (BC) a přeskoku (SKIP). Instrukce, data a adresy jsou zakódovány binárně. 6
Strojové cykly (takty) Činnost počítače probíhá v tzv. strojových cyklech. Jejich délka je v prvním přiblížení (u minulých počítačů) určena dobou čtení nebo zápisu do paměti M, mluví se pak o Č/Z cyklu paměti. Době tohoto cyklu se musela podřídit i činnost operační jednotky ALU. ALU by totiž většinou mohla pracovat rychleji, ale musíčekat na paměť. Říkáme, že ALU se synchronizuje s M. V prvním cyklu se z paměti přečte instrukce, v dalším cyklu se instrukce dekóduje, z adresy operandu se z paměti M přečte jeden operand, a následuje cyklus provedení instrukce, nebo cykly načítání dalších operandů atd. Po dokončení jedné instrukce se načítá další. Jednotlivé cykly označujeme písmeny: načtení instrukce F (fetch), dekódování D, provedení E (execute). Činnost počítače se pak dá popsat posloupností cyklů např. FDEEEFDEEEF... 7
Zdokonalování von Neumannovy koncepce Indexregistry (1949), EDSAC, Universita Cambridge Jednotka pro operace s pohyblivou řádovou čárkou FPU (Floating Point Unit, 1954), IBM 704, NORC Přerušení programu (1956), UNIVAC 1103, Remington Rand Univerzální registry (1956), PEGASUS, Ferranti Asynchronníčinnost vstup-výstupních periferních zařízení V/V PZ (1956), UNIVAC LARC, Remington Rand, založená na vybudování připojovacího kanálu se zapsaným programem Nepřímé adresování (1958), IBM 709 Virtuální paměť (1959), ATLAS, Univ. Manchester V 60. letech již k zásadním zdokonalením architektury nedocházelo tak často, rozvoj se ubíral cestou zdokonalování technologie (následující slide), která vedla k zvětšování výkonnosti i kapacit pamětí. Za významné jevy 70. let považujeme integrovaný procesor (mikroprocesor) a použití rychlé vyrovnávací paměti cache, viz dále. 8
Zdokonalování technologie: Moorův zákon Gordon Moore (Fairchild Semicondutor) si v r. 1965 všiml, že počet tranzistorů na čipu procesoru se vždy za 18 až 24 měsíců přibližně zdvojnásobí. Platí to dodnes a zdá se, že ještě několik let bude No of T s 1 mld 100 m 10 m 1 m 100 k 10 k 8086 80286 I 486 I 386 Pentium II Pentium Pro Pentium Alpha 221464 Pentium 4 1000 1975 1980 1985 1990 1995 2000 2005 2010 Year 9
Klasifikace moderních procesorů Architekturu procesoru dnes nejlépe charakterizují dva parametry: V - počet instrukcí, které se v jednom okamžiku vydávají ke zpracování P - počet současně prováděných (rozpracovaných) instrukcí Subskalární procesory (von neumannovské) P = 1, V = 1 doba provádění programu je součtem dob trvání jednotlivých instrukcí. nová instrukce může být vydána až po té, co je zpracována předchozí. Skalární procesory P>1, V=1 využívajířetězené zpracování instrukcí (viz následující přednášky), kdy je v každém taktu vydávána maximálně jedna instrukce, ale současně jich může být rozpracováno několik. Superskalární procesory P>1, V>1 vydávají k zpracování více než jednu instrukci v jednom taktu současně je rozpracováno několik instrukcí 10
Další klasifikace: Flynnova Flynnova klasifikace je založena na sledování počtu instrukčních a datových proudů v počítači. Jeden (single) instrukční resp. datový proud označujeme symboly SI resp. SD, více než jeden proud (multiple) označujeme analogicky zkratkami MI resp. MD. SISD von neumannův počítač SIMD vektorový procesor MISD více počítačů zpracovává stejná data (řídicí počítač Space Shuttle) MIMD multiprocesorový systém 11
Současné kategorie procesorů Univerzální (Intel, AMD, HP, IBM, ) Grafické (Nvidia, ATI, Matrox, ) Signálové (TI, Fujitsu, ) Aplikační, např. pro mobilní telefony (Intel PXA250, ) Multimediální (TI, Mpact, ) Speciální (šifrovací, kompresní, např. pro MPEG-2, I/O, šachové, hrací, ) 12