Řízení experimentu počítačem F3300 Počítač Počítač • analogový • číslicový (digitální) Elektronický analogový počítač • Elektronický analogový počítač byl v principu stavebnice složená se základních obvodů pro analogové zpracování elektrických signálů – operační zesilovače, funkční měniče, komparátory, spínače • Studované problémy byly nejprve vyřešeny matematicky (tj. byla nalezena např. rovnice, popisující řešení) • Vyřešit problém pomocí AP znamenalo sestavit obvod, který byl popsán stejnou rovnicí a tedy simuloval studovaný děj. • Typicky: hledaná funkce f(x) byla určena měřením závislosti napětí na čase U(t) Operační zesilovač • širokopásmový zesilovač se stejnosměrným vstupem, s velkým vstupním odporem Ri řádu stovky kΩ až několika MΩ , s výstupním odporem řádu 100 Ω a velkým zesílením větším než 104. • V ideálním případě Ri → ∞, a pak Ri R1 R0 U1 Uv 1 1 0 U R R Uv  Některé operace • násobení konstantou • sčítání dvou čísel R1 R0 U1 Uv 1 1 0 U R R Uv  xky  21 xxy  R1 R0 R2 U1 U2 Uv )( 2 2 0 1 1 0 U R R U R R Uv  Příklad analogového počítače řešení nuceného kmitavého pohybu m tF tx m k dt tdx m b dt txd )( )( )()( 2 2  Nevýhody analogového počítače • malá přesnost při provádění výpočtů, korektnost modelu, neznámý vliv okolí, systematické a náhodné chyby měření • počítač je stavebnice, v určitém zapojení řeší zcela konkrétní problém – jde spíše o speciální kalkulátor • neuniverzálnost – úlohy nematematického charakteru se provádějí „těžce“ • Ale: nastavenou činnost jednoduchého charakteru vykonává bez nutnosti užít DT → dnešní použití je např. předzpracování signálu Diskretizace • Původně analogová veličina (s oborem reálných čísel) je uměle omezena na konečnou množinu diskrétních hodnot. • Interval mezi hodnotami (krok) je zvolen tak, aby se jednotlivé hodnoty daly snadno odlišit. • Diskrétními hodnotami se kódují jednotlivé číslice, nutnost řešení vztahu mezi řády. Logika TTL: 0 repr. napětí 0 – 0,8 V; 1 repr. napětí 2 – 5 V. • Je snadnější zkonstruovat elektronické prvky, u kterých budou dobře rozlišeny dva stavy než deset. Každá číslice může proto nabývat jen dvou hodnot. • Desítková soustava reprezentuje čísla v násobcích 10, číslice 0 – 9. Dvojková soustava reprezentuje čísla v násobcích 2, číslice 0 – 1. 23510 = 2 · 102 + 3 · 101 + 5 · 100 1102 = 1 · 22 + 1 · 21 + 0 · 20 = 610. Sčítání binárních čísel probíhá podobně jako v desítkové soustavě, k přenosu do vyššího řádu však dochází, získá-li součet cifer hodnotu 2. • Binární číslice (resp. místo, kde je číslice uložena) je tzv. bit (binary digit). Dvojková soustava Boolova algebra • dvě hodnoty: 1 „pravda“, 0 „nepravda“ • tři základní operace: logický součet +, logický součin ·, negace ¯ negacesoučinsoučet naivní realizace logických operací Boolova algebra • dvě hodnoty: 1 „pravda“, 0 „nepravda“ • tři základní operace: negace ¯, logický součin ·, logický součet + a b ā NOT a·b AND a+b OR NAND NOR XOR 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 ba baba  Shefferova algebra • všechny operace lze vytvořit pomocí jediné funkce (hradla) NAND • Pierceova algebra – využívá funkci NOR negace součin součet Polosčítačka • logický součet nemá vlastnosti aritmetického součtu • tuto vlastnost má operace XOR, vyžaduje však doplnění o určení, zda došlo k přenosu jedničky do vyššího řádu a b XOR a·b 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 ba realizace pomocí hradel NAND Realizace hradel • 0. generace: relé • 1. – 3. generace: elektronky, tranzistory, integrované obvody • Př. unipolární tranzistor technologie CMOS (Complementary MetalOxide Semiconductor) NOT NAND http://tams-www.informatik.uni-hamburg.de/applets/cmos/cmosdemo.html • Kalkulátor je výpočetní stroj s pevně stanoveným programem činnosti. Ten je „zadrátován“ v přístroji a jeho změna je obtížná, ne-li nemožná. • Počítač je univerzální výpočetní stroj, řízený vkládaným programem. Program je načítán spolu se vstupními daty. • Kontroler je výpočetní stroj, u kterého se změna úlohy častonedělá. provádí změnou firmware. Firmware se mění při upgradu. Počítač x samočinný kalkulátor x kontroler Charles Babbage – návrh tzv. Analytical Engine 1834-1871 von Neumannova architektura 1. umístění programu a dat do paměti přes vstupní zařízení 2. řadič interpretuje program, výpočet s daty v paměti provádí ALU 3. výstup výsledků přes výstupní zařízení • Program je umístěn ve stejné paměti jako data. procesor John von Neumann (1945): First Draft of a Report on the EDVAC zdroj Pelikán: Architektura osobních počítačů von Neumannova architektura John von Neumann (1945): First Draft of a Report on the EDVAC • Struktura počítače je nezávislá na typu řešené úlohy, počítač se programuje obsahem paměti. • Následující krok počítače je závislý na kroku předchozím. • Instrukce a operandy (tj. data) jsou v téže paměti. • Paměť je rozdělena do buněk stejné velikosti, jejich pořadová čísla se využívají jako adresy. • Program je tvořen posloupností instrukcí, ty se vykonávají jednotlivě v pořadí, v jakém jsou zapsány do paměti. • Změna pořadí provádění instrukcí se provede instrukcí podmíněného nebo nepodmíněného skoku. • Pro reprezentaci instrukcí, čísel, adres a znaků se používá dvojková číselná soustava. von Neumannova architektura Rozdíly vůči dnešku: • multitasking • paralelismus, multiprocesing • interaktivní režim • V/V zařízení • OS x aplikační software Harvardská architektura • podle počítače Mark 1 (Harvard University, 1944) • oddělená paměť pro program a data (von Neumannova arch. používá společnou paměť pro program i data) • výhody: vyšší rychlost při načítaní, různé druhy paměti (typ, šířka slova), bezpečnost • časté využití u mikrokontrolerů (PIC, Atmel-AVR) • prvky i u PC (rozdělené cache paměti L1 na čipu procesoru) RAM READ číslo | adresa vstupního registru STORE adresa pracovního registru LOAD číslo | adresa pracovního registru ADD číslo | adresa pracovního registru SUB číslo | adresa pracovního registru JUMP číslo instrukce JPOS číslo instrukce JZERO číslo instrukce JNEG číslo instrukce HALT Random Access Machine …vstupní registry 1 počítadlo instrukcí pracovní registry stradač program (konečná posloupnost instrukcí) • výpočetní model (model počítače na úrovni asembleru) RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 1 počítadlo instrukcí 0 0 0 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 2 počítadlo instrukcí 5 0 0 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 3 počítadlo instrukcí 5 0 0 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 4 počítadlo instrukcí 5 5 0 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 5 počítadlo instrukcí 3 5 0 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 6 počítadlo instrukcí 3 5 0 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 7 počítadlo instrukcí 3 5 3 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 8 počítadlo instrukcí 0 5 3 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 9 počítadlo instrukcí 5 5 3 0 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 10 počítadlo instrukcí 5 5 3 5 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 11 počítadlo instrukcí 3 5 3 5 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 12 počítadlo instrukcí 2 5 3 5 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 6 počítadlo instrukcí 2 5 3 5 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 7 počítadlo instrukcí 2 5 2 5 pracovní registry stradač RAM READ 1 JZERO 13 STORE 1 READ 2 JZERO 13 STORE 2 LOAD 3 ADD 1 STORE 3 LOAD 2 SUB =1 JPOS 6 LOAD 3 HALT 5 3 0 0 … vstupní registry 14 počítadlo instrukcí 15 5 1 15 pracovní registry stradač jako výsledek je chápán obsah střadače (nebo i obsah pracovních registrů) Mikroprocesor 8080 Osmibitový procesor • data 8 bit, adresa 16 bit PC (Program Counter) 16 bit • registr s adresou prováděné instrukce A (Accumulator, střadač) 8 bit • registr, nad kterým se prováději operace Instrukce 8080 Příklady instrukcí • LDA (Load A Direct) 3Ah • STA (Store A Direct) 32h • OUT • IN • JMP (Jump Unconditional) C3h • JZ (Jump Zero) CA • ADD registr • MOV cíl. registr zdroj. registr Mikroprocesor 8080 - opcodes Segmentace paměti 8086 • Čtyři registry: CS, DS, SS, ES • Adresa ve tvaru segment:offset 80286 (základ PC AT) Dva režimy • Reálný (jako u 8086) • Chráněný režim (podpora multiprogramování, ochrana paměti, jiná adresace, přístupová práva) • Globální/lokální adresový prostor Virtualizace paměti Přerušení (IRQ = Interupt Request) • je potřeba reagovat na hardwarové události, spouštět služby OS či obsluhovat více procesů • zdroje přerušení (x86): – vnější signál NMI – katastrofické stavy (např. chyba parity v paměti) signál INTR (interrupt) maskovatelný signál, vnější zdroje IRQ přes řadič přerušení – vnitřní softwarové generování přerušení – instrukce INT dělení nulou • průběh: 1. Přerušení prováděného programu 2. Úklid kontextu do zásobníku (registry) 3. Provedení rutiny 4. Obnovení kontextu, pokračování • Ne vždy lze přerušení provést – povolení/zakázání přerušení – instrukce STI, CLI, nastavují příznak IF (Interrupt Flag) – Kritická sekce Přerušení Linka PC/XT PC/AT NMI Chyba parity Chyba parity IRQ O Systémový časovač Systémový časovač IRQ 1 Klávesnice Klávesnice IRQ 2 Grafický adaptér Propojení řadičů přerušení IRQ 3 Sériový port 2 Sériový port 2 IRQ 4 Sériový port 1 Sériový port 1 IRQ 5 Řadič pevného disku Paralelní port 2 IRQ 6 Řadič disket Řadič disket IRQ 8 -------- Hodiny reálného času IRQ 9 -------- Volný, softwarově přesměrován na IRQ 2 IRQ 1O -------- Volný IRQ 11 -------- Volný IRQ 12 -------- Volný IRQ 13 -------- Numerický koprocesor IRQ 14 -------- Řadič pevného disku IRQ 15 -------- Volný Mikroprocesor 80386 • BIU (Bus Interface Unit) – styk se sběrnicí, pro přenos dat mezi procesorem a okolím • IPU (Instruction Prefetch Unit – naplňuje frontu instrukcí pro IDU, po vybrání instrukce z fronty žádá přes BIU její doplnění z adresy v paměti • IDU (Instruction Decode Unit) – dekóduje instrukci, zjišťuje její délku a převádí do fronty ve formátu pro ALU • ALU (Arithmetic - Logic Unit), provádí aritmetické a logické operace, přes BIU zapisuje na výstup • SU (Segmentation Unit) – zajištuje segmentaci paměti • PU (Paging Unit) – jednotka pro stránkování paměti • TLB (Translation Lookaside Buffer) Mikroprocesor 80486 • Numerický koprocesor na čipu (FPU) • Interní chache paměť 8kB • (externí už u 386) • Skalární procesor (má jednu frontu pro zřetězené provádění instrukcí - pipelining) Pipelining PF (Prefetch) D1 (Decode1) (délka a typ) D2 (Decode2) (výpočet adresy) EX (Execution) WB (Write Back) Mikroprocesor Pentium • Superskalární architektura – dvě fronty U, V • BTB • rozdělení chache paměti na data + instrukce • Pentium Pro • Spekulativní provádění • Přejmenování registrů • Mikrooperace • Integrace chache paměti do pouzdra (není na čipu) Mikroprocesor Pentium Pro Pentium 4, Pentium D… Hyper-threading technology • paralelismus na úrovni vlákna s efektivním využitím zdrojů • dynamické přizpůsobování frekvence a napájecího napětí Intel Virtualization Technology Pentium M, Core Duo… A další… Core 2 Duo Core i7 • 45nm, všechna jádra na jedné křemíkové desce • integrovaný řadič DDR3 • Quick Path Interface místo FSB – pro graf. karty • 1,65 V • Turbo Mode, možnost vypnutí nepoužívaných jader Základní deska Základní deska • Mikrocesor(y) • „Vnitřní“ paměť RAM (příp. cache paměť) • Obvody čipové sady • Rozšiřující sběrnice (ISA, PCI, AGP, PCI Express) • Sloty pro připojení rozšiřujících karet • CMOS paměť • Hodiny reálného času • Akumulátor zálohující CMOS paměť • Vstup / výstupní rozhraní LPT, RS-232, USB, • Klávesnice, myš • Rozhraní pevných disků (EIDE, SATA) • Integrace grafické karty, zvukové karty, síťové karty, WIFI, infraportu Sběrnice sběrnice v PC • PC Bus (8bit) • ISA (16bit) • VL-Bus (32bit) • PCI (32/64bit) • PCI-Express (sériová) PIug and Play – úkoly: • idenifikace desky • zjištění, které prostředky (IRQ, DMA, V/V, RAM a ROM adresy) deska potřebuje • zjištění, které prostředky deska může použít • nastavení postředků tak, aby nedošlo ke kolizi • vyhledání a konfigurace ovladače Piny sběrnice PC-Bus – datové (8) – adresové (20) – napájení, zem – čtení x zápis, paměť x V/V z. – řídící signály – IRQ – DMA Operační systém OS je program. • Řízení provádění (uživatelských) programů – správa procesů a vláken, přidělování času procesoru – časovač (preemptivní x kooperativní multitasking) časování časově-kritických aplikací • Správa systémových prostředků a jejich přidělování – správa paměti • přidělování, ochrana, – správa IO zařízení • zpracování přerušení Operační systém Windows (NT→) Operační systém – ovladače User-mode drivers – hlavně rozhraní mezi Win32 aplikací a kernel-mode drivery nebo komponentami OS (př. Vista – drivery tiskáren) Kernel-mode drivers – provádí se v kernel módu jako část Executive. Jsou vrstvené. Vývoj ovladačů vyžaduje specializované znalosti. Certifikace ovladačů, 64bitové systémy Např. Windows Driver Kit (knihovny, nástroje, nápověda) Operační systém - úrovně hardware OS aplikace uživatel programátor Odkazy Předměty na MU • FI PB151 Výpočetní systémy • FI PB152 Operační systémy • FI PV094 Technické vybavení počítačů