Architektura počítačů Paměti počítačů
Historie První počítače v dnešním slova smyslu se začaly objevovat v průběhu 2. světové války a těsně po ní. Největší vliv na utváření představ, jak by počítače měly být konstruovány, měly týmy odborníků v USA, zejména na universitě v Pensylvánii • • • • • •
Mark 1 (Howard Aiken, 1944 - elektronkový) ENIAC (J.Presper Eckert a J.Mauchly, 1945 elektronkový) MANIAC (John von Neumann, 1946 elektronkový) EDVAC (dokončen 1952 podle projektu J.von Neumanna v Bellových laboratořích, elektronkový) M1 - 1.počítač čs. dokončen ve VÚMS 1952, reléový
Ale historie počítacích strojů je mnohem starší … • mechanické počítací (a jiné) stroje – Pascal – Leibnitz – Babbage – Zuse
Historie • mechanický počítač Pascaline (1642) – Blaise Pascal – sčítání a odčítání
zdroj: http://www.cs.uakron.edu/~margush/465/01_intro.html
Historie • Leibnitzův kalkulátor (1673-1694) – Gottfried Leibniz – násobení a dělení
Historie • Difference Engine (1822) – Charles Babbage – výpočet tabulek logaritmů
Historie • Analytical Engine (1834) – Charles Babbage – výpočet hodnot výrazů – řízen programem na děrném štítku
Historie Analytical Engine
Historie • Z1 (1936) – Konrad Zuse – mechanický počítač, dvojková soustava, 22 bitů – program na papírové pásce
Historie • Mark1 (1944) – Howard Aiken – elektromechanický počítač – program na papírové pásce, data na děrných štítkách
Historie 1. generace – elektronky (1945 – 1955) • ENIAC (1945-1946) – John Mauchley a J. Presper Eckert – Electronic Numerical Integrator and Calculator – programován přepínači a propojkami
Historie ENIAC
Historie • EDVAC (1952) – J. von Neumann, John Mauchley a J. Presper Eckert – Electronic Discrete Variable Automatic Computer
Historie EDVAC
SAPO V roce 1957 byl dokončen vývoj 1. Československého samočinného počítače nazvaného „SAPO“ ve Výzkumném ústavu matematických strojů. Byl zkonstruován ze 7000 relé a 400 elektronek. Byl vybaven magnetickou bubnovou pamětí o kapacitě 1024 slov a slovo mělo délku 32 bitů (4 byty). Pracoval s pohyblivou řádovou čárkou rychlostí 3 operace za vteřinu. Instrukce byly pětiadresové. Samočinně opravoval nahodilé chyby ve výsledcích operací bez přerušení výpočtů. Aritmetická jednotka (ALU) byla 3x zálohována a každá jednotka prováděla stejné aritmetické operace nezávisle na druhých jednotkách ALU. Dále obsahoval tzv. prověřovací (diagnostické) obvody v řadiči, které kontrolovaly svou vlastní činnost počítače.
Historie 2. generace – tranzistory (1955 – 1965) • DEC PDP-1 (1960) – Programmed Data Processor-1 – zpracovával 18 – bitová slova – první textový editor
• další počítače: – IBM 7090, 1401, CDC 6600 (Seymour Cray)
Historie 3. generace – integrované obvody (1965 – 1980) • IBM 360 (1965) – 32 bitová architektura – max. 16 MB – naše ekvivalenty – EC 1024/1027
Historie • DEC PDP-11 (1970) – 16 bitová architektura – na PDP-11 první implementace UNIXu a překladače C
Historie DEC PDP-11
na snímku Dennis Ritchie a Kenneth Thompson, tvůrci UNIXu
Historie DEC VAX (1976) • 32-bitový mini počítač • operační systém VMS – jeden z nejspolehlivějších OS
Historie 4. generace – obvody VLSI (1980 - ) • éra domácích a osobních (stolních) počítačů – Altair, Sinclair ZX Spectrum, Atari, Commodore, Apple, IBM PC, ...
• pracovní stanice (WorkStation) – pro profesionální práci • HP, SunSparc, DEC Alpha
Historie Altair •
založen na 8-bitovém procesoru Intel 8080A
Historie Atari 800
Commodore PET
Sinclair ZX Spectrum
Historie IBM PC - 1981
Apple Macintosh
Historie Sun Sparc 2 • pracovní stanice s operačním systémem Solaris (UNIX)
Von Neumannova architektura
Von Neumannova architektura Číslicový počítač se skládá z bloků: • Ř … řadič (controller) – načítá a zpracovává instrukce, řídí ostatní bloky • AJ … aritmeticko-logická jednotka (arithmetical and logical unit) – provádí aritmetické a logické operace • HP … hlavní paměť (main memory) – slouží k uložení programu a dat (operační paměť)
Von Neumannova architektura • VST … vstupní jednotka (input device) - zajišťuje vstup dat • VÝST … výstupní jednotka (output device) zajišťuje výstup dat • vstupní a výstupní jednotky = periferní zařízení • řadič + AJ = procesor • procesorů může být i více - multiprocesorový (paralelní) počítač
Základní znaky architektury(von Neuman): 1. Architektura je nezávislá na zpracovávané úloze, činnost je řízena obsahem paměti – tedy programem (tokem instrukcí) . 2. Paměť je společná pro program i zpracovávaná data; data ani program nejsou nijak odděleny ani explicitně označeny. 3. Paměť je rozdělena na buňky - lineární organizace; k obsahu buňky se přistupuje pomocí jejího pořadového čísla neboli adresy. 4. Pro reprezentaci instrukcí, adres, dat i řízení se používají dvojkové signály (dvojková soustava)
Von Neumannova architektura 5. Instrukce se vykonávají sekvenčně v pořadí, jak jsou zapsány v paměti (zpravidla od nižších k vyšším adresám); pořadí lze změnit speciální instrukcí skoku. 6. V instrukci není zpravidla uveden operand (co se zpracovává), ale jeho adresa.
Architektura počítačů
Hardware • technické vybavení počítačů
Software • programové vybavení počítačů, které není hmatatelné – elektronický zápis programu, textové informace, obrázky, apod.
Paměťový systém počítače Paměť je důležitou součástí počítače, procesor si s ní neustále vyměňuje data. • vnitřní paměť = operační paměť (umístěná na motherboard, komunikuje přímo s procesorem) • vnější paměť (není na základní desce) Vnitřní paměti jinak ROM – Read Only Memory Jsou v ní nahrány základní programy pro otestování počítače a nahrání operačního systému, po vypnutí počítače se nenuluje. V ní jsou též inicializační programy při zapnutí počítače. RAM – Random Access Memory Je to hlavní paměť a je energeticky závislá, tj. po vypnutí napájení se obsah paměti ztratí
Organizace paměťového systém počítače Hierarchie paměťového systému Je několika úrovňové uspořádání pamětí různých velikostí s různou přístupovou dobou. Cílem je dosáhnout výhodného poměru výkonnosti a ceny paměťových modulů. Cena paměti je přímo úměrná kapacitě a přibližně nepřímo úměrná době přístupu. Paměťová hierarchie: Typ paměti
Typická realizace
Doba přístupu
Registry Vyrovnávací pam. Hlavní paměť Vnitřní paměť ROM
klopné obvody statická RAM dynamická RAM permanentní pam.
Vnější paměť Záložní paměti
pevný magn.disk 4 – 10 ms desítky GB – stovky GB optické disky CD,DVD 40 ms – 500ms 600MB až 17GB magnet. páska
jednotky ns 10 – 15 ns 40 – 50 ns 50 – 120 ns
Kapacita desítky – stovky B stovky kB – jedn.MB stovky MB – jedn.GB stovky kB – jedn. MB
stovky ms – xs stovky GB – desítky TB
Hierarchické uspořádání pamětí řeší konflikty mezi požadavky na rychlost a na její kapacitu.
Typy pamětí v PC
Lineární organizace paměti v PC • Příklad: paměť EPROM 27C512 - 64 KB, organizace po slabikách (bajtech) – paměťová buňka má velikost 8 bitů, tj. datových vodičů je 8 – paměťových buněk je 65536, s adresami 0 až 65535, tj. adresových vodičů je 16
Adresace paměti v PC adresa buňky
buňka paměti
65535 = 1111111111111111B = FFFFH
2 = 0000000000000010B = 0002H 1 = 0000000000000001B = 0001H 0 = 0000000000000000B = 0000H desítkově
dvojkově
šestnáctkově
00001111 00101110 ... ... 11111111 00000000 10101001
Little a Big Endian • způsoby uložení dat v paměti • little endian – slabiky nižšího řádu na nižších adresách
• big endian – slabiky nižšího řádu na vyšších adresách
Little a Big Endian
Paměť 27C512 Blokový diagram
Signály: – Vss – zem, Vcc – napájení – Q0 – Q7 • datové výstupy
– A0 – A15 • adresa
– \E • chip enable (vstup – povolení funkce) • aktivní v log. 0 • pokud je vstup v log. 1, obvod je zablokován (nereaguje na ostatní signály)
– \G kolečko a negace značí invertovaný signál, tj. aktivní v log.0
• povolení výstupu (aktivní v log. 0) • pokud je vstup v log. 0, na výstupu jsou platná data
Čtení dat
Pouzdra klíč, určuje orientaci pouzdra
Propojení jednotek: • minimálně se používá propojení pomocí dvoubodových spojů • výhodnější: propojení pomocí sběrnic – sběrnice (bus) – vícebodový spoj • datová • adresová • řídicí
Operační paměť (vnitřní): • RAM – Random Access Memory – paměť s náhodným přístupem (čtení i zápis), po vypnutí napájení ztrácí obsah – je volativní
• ROM – permanentní pameť – Read Only Memory – paměť pouze pro čtení dat, neztrácí obsah po vypnutí napájení – obsahuje základní programy pro start počítače a pro ovládání hardware – vývoj pamětí typu ROM – ROM, PROM, EPROM, EEPROM
• kapacita: v KB, MB
Vývoj pamětí typu ROM • ROM – programovatelné maskou při výrobě, do paměťových pouze lze zapsat obsah pouze 1x („vypálením“) – zákazník musí výrobci dodat obsah paměti, který chce mít zapsán
Vývoj pamětí typu ROM • PROM (Programming ROM) – paměť je programovatelná 1x uživatelem – výrobce dodává paměť, kde všechny buňku obsahují log. 1 („prázdná“) – programování uživatelem - destrukcí • uživatel vloží paměť do speciálního zařízení (programátor) • přivedením vyššího napětí se zničí tranzistory v buňkách, kde má být uložena log. 0 • obsah nelze již vymazat
Vývoj pamětí typu ROM • EPROM (Erasable PROM) – paměťová buňka je tvořena kondenzátorem, který je izolován od okolí (princip izolace náboje – paměť je mazatelná UV zářením • na pouzdře je okénko (viditelný čip) • paměť se vloží do mazačky, která obsahuje UV lampu • osvícením UV zářením specifické vlnové délky se obsah paměť vymaže – elektrony v kondenzátoru získají energii a překonají energetickou bariéru izolace
Vývoj pamětí typu ROM • EPROM (Erasable PROM) – programování • opět v programátoru • připojením na vyšší (cca 12V) programovací napětí • zápisový cyklus – zápis náboje do kondenzátoru v paměťové buňce
• Poznámka: – některé paměti EPROM jsou bez okénka, jsou programovatelné 1x (OTP – one time programming) jako PROM, ale pracují na principu EPROM
Vývoj pamětí ROM mazací okénko
Vývoj pamětí EPROM
Vývoj pamětí ROM • programovací cyklus a zpětné čtení obsahu (ověření, verifikace)
Vývoj pamětí typu ROM • EEPROM (Electrically EPROM) – princip uchování informace je shodný s typem EPROM – maže se elektricky v programátoru (odčerpání náboje je elektrické) – FLASH EEPROM • paměť EEPROM programovatelná po blocích
– „normální“ EEPROM • lze přepisovat samostatně jednotlivé buňky
Paměti typu RAM • RAM = Random Access Memory – paměť s možností libovolného čtení i zápisu – nevýhoda: není trvalá • po vypnutí napájení ztrácí paměť svůj obsah
• dva typy pamětí RAM – statická – dynamická
Struktura paměťového modulu
Struktura paměťového modulu II Kapacita paměťového obvodu je dána šířkou jeho adresové a datové sběrnice. V tomto případě 2i+1 slov po k+1 bitech. Dekodér řádků: dekóduje binární kód 1 z n (přesněji 1 z 2i+1) Obvod výběru sloupců: jeden multiplexer pro každý datový bit. Paměťová buňka : např. bistabilní klopný obvod u statické paměti RAM. Řídící signály:
Struktura statické paměti
Struktura statické paměti II Při zápisu dojde k sepnutí přenosových hradel P1 a P2 a současně k aktivaci budičů B1 a B2. Tím se hodnota z vodiče D0 zapíše do klopného obvodu KO, protože přenosová hradla a budiče jsou „silnější“ (mají menší odpor v sepnutém stavu) než tranzistory v klopném obvodu. Při čtení se stav klopného obvodu KO přenese přenosovým hradlem P1 na první vstup multiplexoru MX a je-li tento vstup vybrán, objeví se na vodiči D0.
Struktura dynamické paměti
Dynamické paměti RAM • příklad: dynamická paměť RAM 41256 – kapacita 256 kbitů, šířka dat 1 bit • 256 kbitů ⇒ potřebujeme 18 adr. vodičů – vyšších 9 bitů adresy je řádek – nižších 9 bitů adresy je sloupec – paměť má pouze 9 adresových vodičů díky multiplexovaným vodičům • signály: – AD0-8 – adresové vodiče (řádek i sloupec)
Dynamické paměti RAM – \RAS – Row Address Strobe • zápis řádkové adresy do záchytného registru
– \CAS – Column Address Strobe • zápis sloupcové adresy do záchytného registru
– Q - data out • výstup dat
– D – data int • vstup dat
– \W – write enable • povolení zápisu dat
Paměť DRAM 41256
Vcc – napájení +5V Vss – zem (ground)
Čtecí cyklus RAS to CAS delay
Access time from CAS (CAS latency)
Zápisový cyklus do paměti
Struktura dynamické paměti II V dynamické paměti je adresa časově multiplexována, polovina adresy při signálu RAS = 0 (řádek), druhá polovina adresy při signálu CAS = 0 (sloupec). Zápis : Na datový (sloupcový) vodič se přivede zapisovaná úroveň a aktivuje se zvolený řádek. Paměťový kondenzátor se nabije nebo vybije (1 nebo 0). Čtení: Při výběru řádku se kondenzátory vybijí do vstupů čtecích zesilovačů (čtení je destruktivní a přečtenou informaci je nutno bezprostředně zapsat zpět – provede se refresh). Obnovení: Stejně jako u čtení. Protože čtecí zesilovače jsou umístěny ve všech sloupcích, obnovují se všechny sloupce jednoho řádku najednou.
Vyrovnávací paměť – cache I
Asociativní paměť cache II Použití plně asociativní paměti Data zapsaná v paměťové matici asociativní paměti budou kopie „často“ používaných položek dat v hlavní paměti. Klíčem bude adresa, která každou položku jednoznačně identifikuje Jak bude probíhat čtení? Začne pokus se současným čtením z cache paměti i z hlavní paměti. Pokud se položka v cache nalezne, použije se a cyklus v hlavní paměti se nedokončí. V opačném případě se data přečtou z hlavní paměti (zpravidla se i současně uloží do ceche). Jak to bude se zápisem? Pokud položka v cache není přítomna, zapíše se (zpravidla) jen do hlavní paměti. Pokud je v cache přítomna, postupuje se dvěma způsoby:
Asociativní paměť cache III zapíše se nová hodnota současně do cache a do hlavní paměti – - jedná se o tzv. „průběžný zápis“ (write through) zapíše se nová hodnota jen do cache – jedná se o tzv. „odložený“ zápis (write back)
Asociativní cache paměť 80486 – popis Funkce : Při pokusu o čtení z cache paměti procesoru 80486 se v každém modulu (jsou 4 moduly) porovná klíč uložený v příslušném řádku (udávající adresu bloku dat, jehož kopie se v tomto řádku nachází) s klíčem odvozeným z adresy hledané položky dat. Shoda klíčů znamená, že hledaná položka byla v příslušném modulu nalezena.
Asociativní paměť cache – schéma procesoru Intel 80486 s omezeným stupněm asociativity
1. Úvod do počítačů – architektura PC dnes
1. Úvod do počítačů
Základní části počítače motherboard procesor sběrnice paměť – hierarchie pamětí vstupní zařízení výstupní zařízení porty
1. Úvod do počítačů – procesory Intel
Procesory Intel Zvýšený výkon znásobováním procesů Čtyřjádrové procesory Intel už i pro stolní počítače Procesor Intel Core 2 Quad přináší do PC čtyři jádra, a tím i strhující rychlost práce a odezvy ve stále náročnějším prostředí moderních multimediálních aplikací. Procesor je v prodeji samostatně, i v počítačích všech větších výrobců. Intel dále představil dva čtyřjádrové procesory pro základní servery. Zmíněné produkty vychází z řady dvoujádrových procesorů Intel Core 2 Duo a čtyřjádrových procesorů Intel Core 2 Q
Dvoujádrový procesorový čip-(Dual procesor) – vedle na obrázku.
1. Úvod do počítačů - komunikace po sběrnici Sběrnice je skupina vodičů, které mají speciální funkci a spojují jednotlivé součásti počítače. Sběrnice zajišťuje komunikaci a propojení procesoru s ostatními částmi počítače. Přidělování sběrnice: PS - přidělovač sběrnice, P1,P2 – procesory VV1, VV2 – vstupně/výstupní zařízení, HP1,HP2 - moduly hlavní paměti
1.Úvod do počítačů – systém sběrnic 1. a 2. - lokální sběrnice systémová 3. – lokální sb. systém. 4. – V/V sběrnice 5. – specializovaná sb. vnější 6. – komunikační sběrnice
1. Úvod do počítačů - základní cyklus
Registry • speciální paměťové buňky uvnitř procesoru – pro ukládání výsledků a mezivýsledků operací – pro ukládání stavu procesoru, chyb, atd.
Registry • Programový čítač (PC) - Program Counter – obsahuje adresu právě prováděné instrukce – u procesorů Intel se nazývá IP (Instruction Pointer)
• Střadač (A) - Accumulator – ukládají se zde výsledky a mezivýsledky operací – některé instrukce pracují pouze se středačem
Registry • Příznakový (stavový) registr (F nebo S) Flags, Status – je zde uložen stav procesoru, informace o chybách, výsledky operací ve smyslu např. výsledek je nulový, kladný/záporný
Příznakový registr procesoru Intel 8086
Příznakový registr procesoru Intel 8086
Registry • Ukazatel zásobníku (SP) - Stack Pointer – obsahuje adresu vrcholu zásobníku
1. Úvod do počítačů - instrukce Instrukce = příkaz, který je zakódovaný jako „číslo“ Obsahuje tyto informace(popřípadě může obsahovat): 1. jaká se má provést operace (typ operace) 2. s čím se má operace provést (operandy) a kam se má uložit výsledek 3. kde se má dále pokračovat – adresa následující instrukce Tyto informace mohou být obsaženy: - explicitně v instrukci, kupř. zmíněné SAPO s 5 adresovou instrukcí: k bodu 1. tzv. operační znak k bodu 2. 2+1 adresa k bodu 3. 2 adresy – následující instrukce při záporném a nezáporném výsledku
1. Úvod do počítačů - instrukce Z části explicitně v instrukci, z části určeny implicitně architekturou procesoru, např. K bodu 1. Operační znak OZ instrukce, K bodu 2. adresová část instrukce K bodu 3. von Neumannova koncepce další instrukce na následující adrese
architektura
Operační kód = soubor instrukcí : OZ - kód operace
1. Úvod do počítačů 1 adresová instrukce
OZ
a
zvláštní registr – střadač S - střadač (Accumulator) 1. operand a výsledek např. : 〈S〉〉 - 〈a〉〉 → S 〈a〉〉 → S
operace přesunu : Př.: 〈 x〉〉 - 〈 y〉〉 → z
≡
a
〈S〉〉 → a
x →S S → y →S S →z
Více střadačů ⇒ číslo střadače ∈ instrukce ⇒ lze provést operace mezi střadači
1. Úvod do počítačů OZ
2 adresová instrukce
a2
a1
výsledek se ukládá na místo prvního operandu, např.:
〈 a1〉 − 〈 a2〉 → a1 je třeba zavést „neproduktivní“ operaci přesun: 〈 a2〉 → a1 Př.: 〈 x〉 − 〈 y〉 → z
≡ x → z
3 adresová instrukce
z - y → z
OZ
a1
a2
„ nejpřirozenější „ : 2 operandy + 1 výsledek instrukce je poměrně dlouhá
a3
Druhy instrukcí • aritmetické – ADD (sečti), SUB (odečti), MUL (vynásob), DIV (vyděl), INC (zvyš o 1), DEC (sniž o 1), CMP (porovnej)
• logické – AND, OR, XOR, NOT, TEST
• posuvy a rotace – SHL (posuv vlevo), SHR (posuv vpravo), ROL (rotace vlevo), \
• přesuny dat - MOV, IN, OUT, PUSH, POP • skoky – JMP, JZ, JAE
• volání – CALL, RET, RETZ, RETI
• cykly – LOOP
Příklad zakódování instrukce • procesor Intel • instrukce MOV RW,DATA16 – uložení 16-bitové konstanty do registru – konstanta je uložena v instrukci za operačním znakem
Příklad zakódování instrukce
1. Úvod do počítačů – cyklus čtení instrukce
1. Úvod do počítačů – skoky Skoky:
1. Úvod do počítačů - přerušovací systém Přerušení způsobí, že procesor(dočasně) přestane provádět právě probíhající program a na místo toho začne provádět jiný program, který přerušení tzv. obslouží – tedy reaguje na jev, který přerušení vyvolal. Vnější přerušení – periferie, uživatel, havarijní stavy apod. nemaskovatelné - vstup NMI maskovatelné (z řadiče přerušení) Vnitřní přerušení - chyby operandů, výsledků, zvolené krokování - instrukce INT n – n je 8-bitová konstanta a)
Před obsluhou přerušení se uloží na zásobník informace o tom, jaký program se právě prováděl (FLAGS, CS, IP)
b) Zakáže se další přerušení c) Zjistí se, jak daný typ přerušení obsloužit – nastaví se nové CS a IP d) Při návratu z přerušení je třeba obnovit informace o původním programu- ze zásobníku se vyzvedne IP, CS a FLAGS
1.
Úvod do počítačů – Harvardská architektura
1. Úvod do počítačů – RISC architektura RISC – Reduced Instruction Set Computers – počítače s redukovaným souborem instrukcí Charakteristické rysy: Poměrně malý počet instrukcí - < 128 a velmi jednoduchých Velmi krátká doba provedení instrukce – vždy v jednom cyklu „Klasický“ řadič – obvodově realizovaný Proudové zpracování instrukcí – paralelní překrývání při zpracování Jedna instrukce = 1 slovo Malý počet formátů instrukcí - ≤ 4 Malý počet způsobů adresace - ≤ 4 Velký počet registrů – desítky až stovky registrů Komunikace s hlavní pamětí : pouze instrukcemi „přesun“ Protipól RISC architektury: Počítače typu CISC – Complex Instruction Set Computers
Neproudové a proudové zpracování instrukce
1. Úvod do počítačů – přerušení
1. Úvod do počítačů - přerušení 1 – v počítači došlo k požadavku na přerušení, např. periferie nebyla ready, ….. 2 – přes konektor V/V je vyslán signál IRQ x do řadiče přerušení, který signál vyhodnotí a určí typ přerušení 3 – řadič přerušení vyšle zprávu o požadavku na přerušení do procesoru 4 – procesor pak vyšle zpátky do řadiče signál INTA potvrzující přerušení. 5 – poté řadič přerušení vyšle do procesoru zjištěnou informaci o typu přerušení 6 - procesor pak uloží informace o probíhajícím programu, tj. uloží obsah registru PC, PSW (FLEGS) event. počáteční adresu Code Segmentu(registru CS) do zásobníku
1. Úvod do počítačů - přerušení 7 - procesor vyhledá na počátku paměti k typu přerušení odpovídající vektor přerušení a podle něho pak určuje počáteční adresu obslužné procedury. 8 – tuto adresu pak nastaví procesor do registru PC a spustí se vyhledaná procedura 9 – po skončení obslužné procedury procesor vyzvedne ze zásobníku návratovou adresu a uloží do PC, jakož i původní obsah stavového slova PSW do registru FLEGS. Pak může přerušený program pokračovat dále ve své činnosti