Ú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č I P, D
P, D
paměť
Blok vstupů
Blok výstupů
D
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 Alpha 221464
100 m
Pentium 4 10 m
Pentium II Pentium Pro Pentium
1m I 486 I 386
100 k 80286 10 k 1000 1975
8086
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