Počítač
Jiří Zacpal
DEPARTMENT OF COMPUTER SCIENCE
PALACKÝ UNIVERSITY, OLOMOUC
KMI/YUDIT Úvod do informačních technologií
Osnova
Obsah přednášek:
1. Co je to počítač, historie vývoje počítačů. Architektura počítače (von Neumannova) a princip jeho činnosti.
Číselné soustavy, logické funkce a obvody. Reprezentace čísel a znaků.
2. Základní deska počítače a interní sběrnice počítače (PCI).
Princip činnosti mikroprocesoru (CPU) a vnitřních pamětí (RAM, cache).
Interní součásti počítače, přídavné karty (grafická, zvuková, síťová, multimediální), vnější paměti (pevné disky a disková pole).
Periferie a externí sběrnice počítače (USB).
Monitor (CRT, LCD), polohovací zařízení (klávesnice, myš aj.), datové mechaniky a média (floppy, CD, DVD), tiskárna a skener, modem.
3. Operační systém a jeho funkce při ovládání počítače, z uživatelského i administrátorského pohledu.
Struktura a funkce operačního systému (správa procesů, paměti a disku)
4. Počítačové sítě, technologie a principy fungování. Celosvětová síť Internet a její služby.
5. Základy databázových systémů a zpracování dat.
Způsob výuky
Prezenční výuka. Studenti se dostaví pětkrát za semestr k organizované výuce. Ta probíhá formou přednášek,
seminářů a cvičení.
Konzultace
Prezenční konzultace (úterý, pátek 10.00-11.00, pracovna 5.044)
Emailové konzultace (jiri.zacpal@upol.cz)
Konzultace telefonem (585 634 706)
Na plánovanou konzultaci a její obsah je vhodné tutora předem upozornit emailem. Po dohodě lze sjednat
konzultaci individuálně i mimo stanovené konzultační hodiny.
Samostudium a samostatná práce
(http://phoenix.inf.upol.cz/esf/materialy.htm):
J. Hronek: Struktura počítačů
P. Příhoda: Počítačové sítě
J. Hronek: Databázové systémy
Vyuka/KMI_YUDIT, složka vyukovy_text_uvt
Studenti mají k dispozici studijní literaturu v angličtině i v češtině k zapůjčení v Knihovně Přírodovědecké
fakulty
Historie počítačů
Počítač
je elektronické zařízení, které zpracovává data pomocí předem vytvořeného programu
skládá se z:
hardware, které představuje fyzické části počítače
software (operační systém a programy)
je zpravidla ovládán uživatelem, který poskytuje počítači data ke zpracování prostřednictvím jeho
stupních zařízení a počítač výsledky prezentuje pomocí výstupních zařízení
Historie počítačů – Nultá generace
mechanické části, relé, (desítky operací/s)
1936 - Turingův stroj (teoretický model), Alan Turing
1937 - dvojková, digitální elektronika, Claude Shannon
1937 - Atanasoff–Berry Computer, dvojkový, neprogramovatelný (soustavy lineárních rovnic), ne turingovsky úplný
1938 - reléový počítací automat Z-1, Konrád Zuse, pomalý, nespolehlivý,
1941 - Z-3 programovatelný,
1943 - Colossus, kryptoanalýza Enigmy (Bletchley Park)
Harvard Mark I
počítač nulté generace - mechanický stroj, obsahoval však některé elektromagnetické součástky (relé)
sestrojen během 2. světové války firmou IBM
později převezen na Harvardskou univerzitu
765 000 komponent
instrukce načítal z děrného štítku
0,3 s součet, 6 s násobení, 1 min výpočet jedné periody funkce sinus
americké námořnictvo ho využívalo k výpočtu balistických tabulek
Historie počítačů – První generace
elektronky, (stovky až tisíce operací/s)
1945 - idea řízení počítače programem uloženým v paměti, John von Neumann
1946 - ENIAC (Electronic Numerical Integrator and Computer),
1951 - EDVAC, Bellovy laboratoře, dvojkový, IAS (1952, John von Neumann), lépe
navržený a univerzálnější než ENIAC - program v paměti spolu s daty, dále UNIVAC,
MANIAC, JOHNNIAC, IBM 650, Strela (1953)
* paměti: magnetické bubny, děrné štítky a pásky
ENIAC- Electronic Numerical Integrator And Computer
Amerických během 2. světové války (University of Pennsylvania)
přibližně 1000 krát rychlejší než Harvard Mark I
30 tun,15m2 (bývalá univerzitní tělocvična),
17460 elektronek, 1500 relé, 174 kW (chlazení vzduchem od vrtulí dvou leteckých motorů),
násobení v řádu ms, dekadický, programovatelný pomocí přepínačů a kabelů, výpočet konfigurace vodíkové bomby,
1955 - rozebrán
MANIAC – Matemathical Analyser Numerical Integrator
And Computer
počítač první generace
inspirovaný ENIACem
uveden do provozu John von Neumannem
v projektu Manhattan byl použit k vývoji první jaderné bomby
EPOS 1, EPOS 2
EPOS 1 byl zkonstruován pod vedením prof. Antonína Svobody
roku 1960 ve Výzkumném ústavu matematických strojů
počítač první generace, plně elektronkový
následník EPOS 2 již osazený tranzistory (počítač druhé generace)
Historie počítačů – Druhá generace
tranzistory, desítky až stovky tisíc operací/s
1947 - polovodičový tranzistor, Bellovy laboratoře, Bardeen-Brattain-Shockley
1956 - TX (“tixo”, MIT, 18-bitová slova), další Univac, IBM 7XXX
1963 - PDP-6 (DEC, jen 23 kusů), time sharing, 36-bitová slova
paměti: feritové, magnetické disky a pásky
různý nekompatibilní hardware
(nižší) programovací jazyky: strojový kód, “assemblery”, Fortran, Algol, COBOL
Historie počítačů (1) – Třetí generace
integrované obvody, miliony operací/s
1959 - integrovaný obvod (s více tranzistory na křemíkovém čipu)
míra integrace v počtu tranzistorů na čipu: SSI (desítky), MSI (stovky, konec 60. let)
1964 - IBM System/360, počátek rodiny mainframů, 32-bitová slova, 8 bitů = byte, adresace bytů
1968 - PDP-10 na univerzitách (MIT, Stanford, Carnegie Mellon), „hackerský“
1970 - mikroprocesor, Intel 4004 (1971, 4-bit), 8008 (1972, 8-bit), 8080 (1974), {8086}
(1978, 16-bit), Motorola 6800 (1974, 8-bit),{68000} (1979, 16/32-bit)
Historie počítačů (2) – Třetí generace
1975 - mikropočítače ALTAIR 8800 a IMSAI 8080, další Apple I (1976)
80. léta - Sinclair ZX 80, Commodore C64, IBM PC (1981), ZX Spectrum, Apple Lisa (1983,
GUI), IBM PC/XT (1983), Apple Macintosh (1984), IBM PC/AT (1984), Atari ST (1985),
Commodore Amiga (1985), IBM PS/2 (1987)
* paměti: magnetické disky a pásky, elektronické kompatibilní hardware, modulární architektury
* (vyšší) programovací jazyky: Lisp, BASIC, Pascal, C, Smalltalk, ......
* terminální sítě a počítačové sítě
Historie počítačů - Současnost
integrované obvody, miliardy operací/s
míra integrace: LSI (desetitisíce, 70. léta),
VLSI (stovky tisíc až miliardy, od 80. let)
paměti: magnetické a optické disky, elektronické (FLASH)
(víceúčelové) programovací jazyky: Python, Visual Basic, Java, C#
počítačové clustery
Architektura osobního počítače
Kategorie počítačů z hlediska hardware (1)
• mikropočítač (osobní počítač)
mikroprocesor
na 1 čipu
typy: workstation, desktop, server, laptop, notebook, palmtop, PDA, embedded, 1 uživatel, všeobecné použití
• minipočítač (midrange)
terminálové serverové počítače, větší diskový prostor,
více periferií, hotswap hardware, spolehlivé, více uživatelů (I/O zařízení),
použití v obchodní systémech, průmyslu, např. DEC PDP, VAX, IBM
HP 3000, Sun SPARC Enterprise,
v pol. 80 let (nahrazeny sítěmi) serverů a pracovních stanic
Kategorie počítačů z hlediska hardware (2)
• mainframe (sálový počítač)
velký diskový prostor, mnoho periferií,
paralelní architektury, vysoký výkon, použití pro výpočty (průmysl),
zpracování hromadných dat (statistiky, banky), např. IBM System/360,
System z10
• superpočítač
paralelní a distribuovaná architektury, velmi vysoký
výkon, náročné
výpočty nad rozsáhlými daty, použití pro výzkum, meteorologii, seismologii apod. - simulace, např. Cray, IBM Blue Gene, Roadrunner
Osobní počítač
vychází z minipočítačů z konce 70. let
příbuznost a (částečná nebo úplná) kompatibilita s počítači IBM PC a Apple Macintosh
IBM PC (od roku 1981), procesor 8088
IBM PC XT (8-bitový) → IBM PC AT (16, 32, dnes 64-bitový)
základní koncepce technického provedení počítače - „skládačka“:
základní deska s procesorem, pamětí a přídavnými kartami,
vstupní a výstupní zařízení
von Neumannova koncepce počítače (1)
1946 - Princeton Institute for Advanced Studies
řízení počítače programem uloženým v paměti
architektura:
procesor (CPU): řadič + aritmeticko-logická jednotka (ALU)
operační paměť: lineárně organizovaná, rozdělená na stejně velké buňky, přístup pomocí adres
vstupně/výstupní (I/O) zařízení
von Neumannova koncepce počítače (2)
ARITMETICKO-
ŘADIČ
LOGICKÁ
JEDNOTKA
OPERAČNÍ
PAMĚŤ
ZAŘÍZENÍ
ZAŘÍZENÍ
von Neumannova koncepce počítače (3)
program = předpis pro řešení úlohy = posloupnost elementárních kroků, tzv. instrukcí
instrukce = interpretovaná binární data se speciálním významem
(proměnná) data a program načtené do jedné společné operační paměti
činnost počítače řídí řadič: s využitím ALU zpracovává instrukce programu nad daty
čtenými z paměti nebo vstupního zařízení, výsledná data se zapisují do paměti nebo výstupního zařízení
von Neumannova koncepce počítače (4)
instrukce programu vykonávány sekvenčně, výjimku tvoří instrukce skoků
ALU: základní početní operace (sčítání, násobení, logické, bitové posuvy)
von Neumann bottleneck: rychlost zpracování instrukcí vs. rychlost komunikace s pamětí
von Neumannova koncepce počítače (5)
koncepce, až na drobné odlišnosti, používaná dodnes:
rozšíření o koncepci přerušení od I/O a dalších zařízení
umožňuje efektivně zpracovávat více programů „zároveň” i na jednom CPU (multitasking)
více než jeden procesor (radič, ALU), zpracovávání více programů zároveň
postupné načítání programu do paměti podle potřeby
Harvardská koncepce počítače
podle počítače MARK I (program na děrné pásce, data na elektromechanických deskách)
Architektura podobná von Neumannově, až na:
dvě oddělené paměti pro program a pro data
paměť programu často jen pro čtení
paralelní přístup do pamětí
modifikovanou ji interně používají moderní CPU (instrukční a datová cache)
DSP procesory v audio/video technice, jednoúčelové (programovatelné) mikrokontroléry (Atmel AVR), kalkulátory
Jednotkou informace je bit = 2 různé hodnoty (ano-ne, 0-1)
Osminásobek jednoho bitu se nazývá byte (označení 1B) = 256 různých hodnot (0-255)
2 ∙ 2 ∙ 2 ∙ 2 ∙ 2 ∙ 2 ∙ 2 ∙ 2 = 28 = 256
Základní jednotky
Jednotka
Kilobyte
Kibibyte
Megabyte
Mebibyte
Gigabyte
Gibibyte
Značka
kB
KiB
MB
MiB
GB
GiB
Terabyte
Tebibyte
TB
TiB
1 000
1 024
1 000 000
1 048 576
109
~1,074·109
1012
~1,1·1012
29
Kódování dat
Kódování dat
Jakákoliv informace uložená v počítači musí být nejprve převedena do tvaru, kterému počítač rozumí. Tomuto převodu říkáme kódování.
Zpětnému převodu do podoby, která je čitelná pro člověka, naopak říkáme dekódování.
Kódování čísel
Obecně se pro zápis čísel používají tzv. číselné soustavy.
číslo dané soustavy je posloupností symbolů, které se nazývají číslice (nebo cifry)
každá číselná soustava je určena základem z, což je nenulové přirozené číslo, které udává maximální počet použitelných číslic
skutečná hodnota každé číslice je pak dána pozicí ve zmíněné posloupnosti symbolů.
Kódování čísel
𝐴 = 𝑎𝑛 𝑎𝑛−1 𝑎𝑛−2 … 𝑎1 𝑎0 ,
nejméně významná číslice
𝐴 = 𝑎𝑛 ∙ 𝑧 𝑛 + 𝑎𝑛−1 ∙ 𝑧 𝑛−1 + 𝑎𝑛−2 ∙ 𝑧 𝑛−2 + ⋯ + 𝑎1 ∙ 𝑧1 + 𝑎0 ∙ 𝑧 0 .
Kódování čísel
(1234)10 = 1 ∙ 103 + 2 ∙ 102 + 3 ∙ 101 + 4 ∙ 100 .
(110101)2 = 1 ∙ 25 + 1 ∙ 24 + 0 ∙ 23 + 1 ∙ 22 + 0 ∙ 21 + 1 ∙ 20 .
Kódování záporných čísel
Přímé kódování - první bit je vyhrazen pro znaménko
číslo 00001001 ve dvojkové soustavě je 9 v desítkové, a proto 10001001 představuje číslo -9
Doplňkový kód - záporné číslo je zaznamenáno jako binární negace (záměna všech 0 za 1) původního čísla
zvětšená o 1.
Kódování záporných čísel
kódovaného čísla a domluvené konstanty (většinou polovina maximálního kladného čísla).
číslo (-10)d reprezentujeme pomocí 1 B jako 118 = (-10)d + (256)d /2 = -10 + 128
Inverzní kód - kladná čísla se vyjadřují normálním způsobem, záporná čísla se vyjadřují binární negací čísla
například -3 vyjádříme kódem 11111100
Kódování čísel s fixní řádkovou čárkou
Příklad: kódování čísla (0,625)10
0,625 2 = 1,250
celočíselná část = 1
0,250 2 = 0,500
celočíselná část = 0
0,500 2 = 1,000
celočíselná část = 1
Odtud je číslo (0,625)10 = (0,101)2
KMI/YUDIT Úvod do informačních technologií
37
Kódování čísel s pohyblivou řádkovou čárkou
definované normou IEEE 754
formáty
jednoduchá přesnost (single) – 32 bitů
dvojnásobná přesnost (double) – 64 bitů
X=(-1)s × 2exp-bias × m
pro číslicové obvody nejjednodušší. V minulosti se používaly i jiné báze, například 8, 16 nebo i 10.
exp je vždy kladná hodnota exponentu posunutého o hodnotu bias
bias je hodnota, díky které je uložený exponent vždy kladný. Tato hodnota se většinou volí dle
vztahu: bias=2eb-1-1, kde eb je počet bitů vyhrazených pro exponent.
m je mantisa, která je u formátů IEEE 754 vždy kladná
s je znaménkový bit nabývající hodnoty 0 nebo 1. Pokud je tento bit nulový, je reprezentovaná
hodnota kladná, v opačném případě se jedná o zápornou hodnotu. Vzhledem k tomu, že je jeden
bit vyhrazen na uložení znaménka, je možné rozlišit kladnou a zápornou nulu.
Jednoduchá přesnost
X = (-1)s × 2E-127 × (1 + Q)
Q = m1 × 2-1 + m2 × 2-2 + … + m22 × 2-22 + m23 × 2-2
127 = 2eb-1-1 = 28–1-1 = 27-1 = 128–1
exponent
od –127 do 128 (od -126 do 127)
-127 (00000000) a 128 (11111111) jsou použity pro speciální účely
mantisa – ukládají do ní normalizovaná čísla v intervalu <1;2>
vzhledem k tomu, že první bit umístěný před binární tečkou vždy 1, není ho zapotřebí
ukládat, což znamená, že ušetříme jeden bit z třicetidvoubitového slova
Jednoduchá přesnost
podmínka
E = 1 až 254
E = 0, Q ≠ 0
E = 0, Q = 0, s = 0
E = 0, Q = 0, s = 1
hodnota
X = (-1)s × 2E-127 × (1 + Q)
X = (-1)s × 2-126 × Q
X=0
X=0
E = 255, Q = 0, s = 0
X = +∞
E = 255, Q = 0, s = 1
X = -∞
E = 255, Q > 0
X = NaN
kladná nula
záporná nula
kladné nekonečno
(výsledek byl příliš vysoký)
záporné nekonečno
(výsledek byl příliš nízký)
není číslo
KMI/YUDIT Úvod do informačních technologií
40
Jednoduchá přesnost
1. 123,456=1,929×26
2. s=0
3. E – 127 = 6 → E = (133)10 = (10000101)2
4. mantisa (0,929)10= (11101101110100101111001)2
s
bit
hodnota
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
0 1
0
0
0
0
1
0
1
1 1
1
0
1
1
0
1
1
1
0
1
KMI/YUDIT Úvod do informačních technologií
0
0
8
7
6
5
4
3
2
1
0
1
0
1
1
1
1
0
0
1
41
Kódování textu
Kromě písmen (velkých i malých) ASCII kóduje i číslice, speciální symboly (např. !,@,\#,\$)
a několik tzv. netisknutelných znaků (mezera, tabulátor, posun na nový řádek apod.)
* používá 7 bitů = 128 znaků
Kódování české abecedy
vznikalo mnoho různých vzájemně nekompatibilních kódování.
Jen pro českou abecedu bylo vytvořeno alespoň šest kódování. Nejpoužívanějšími byla jednobytová kódování:
Windows-1250 v operačních systémech Windows,
ISO 8859-2 v operačních systémech Unix,
Kamenických v operačním systému DOS.
Unicode
Každý znak v Unicode má jednoznačný číselný kód a svůj název.
Tabulka Unicode poskytuje prostor pro 1 114 112 znaků.
Tento prostor se dělí na 17 částí, každý o velikosti 216.
První část se nazývá Basic Multilingual Plane (BMP) a obsahuje znaky běžně používaných abeced.
Původní 16bitový návrh Unicode počítal jen s BMP, následně se ale ukázalo, že pro pokrytí všech používaných abeced to nestačí.
Prvních 128 znaků (tj. sedmibitové kódy) obsahuje znakovou sadu
ASCII.
UTF
Existuje několik různých způsobů, jak znaky Unicode kódovat.
UTF-8 (UCS Transformation Format):
nejpoužívanější zobrazení Unicode znaků
pokud se znak v
ASCII-7, zobrazí se beze změny v 1. bajtu
pokud není v
ASCII, je zadán dvěma až šesti bajty:
1. bajt: počet jedniček zleva vyjadřuje délku sekvence, nula je oddělovač,
další bajty: v nejvyšších dvou bitech vždy 10
pro českou abecedu (všechny znaky jsou v rozsahu U+0080 – U+07FF) stačí 2 B pro znaky s diakritikou, 1B pro znaky bez diakritiky
Příklad: slovo „Příliš“
50
c5 99
c3 ad
6c
69
c5 a1
P
ř
í
l
i
š
ř: 1100 0101
1001 1001 „ř“ v Unicode U+(0159)16 =1010110012
UTF-16 a UTF-32
UTF-7
Binární logika
Binární logika (1)
Základní operace v počítači = logické operace
Formální základ = výroková logika (zkoumá pravdivostní hodnotu výroků → pravda/nepravda →1/0
Matematický aparát pro práci s log. výrazy:
Booleova algebra (binární, dvoustavová, logika)
Fyzická realizace : logické elektronické obvody - základ digitálních zařízení
Binární logika (2)
Logická proměnná x
veličina nabývající dvou možných diskrétních logických hodnot: 0 (nepravda) a 1 (pravda)
Logická funkce f(x1,… , xn)
funkce n logických proměnných x1,…,xn nabývající dvou možných diskrétních hodnot 0 (nepravda) a 1 (pravda)
Booleova algebra (binární logika)
algebra logických proměnných a logických funkcí
dvouhodnotová algebra, algebra dvou stavů
Negace (inverze)
𝑥
𝑥
0
1
1
1
operátory: 𝑥, NOT x, :¬𝑥 (výroková negace, algebraicky negace), 𝑋 (množinový doplněk)
Logický součin (konjunkce)
𝑥
𝑦
𝑥∙𝑦
0
0
0
1
0
0
0
1
0
1
1
1
operátory: 𝑥 ∙ 𝑦, x AND y, xy (výrokově konjunkce, algebraicky průsek), X Y (množinový průnik)
Logický součet (disjunkce)
𝑥
𝑦
𝑥+𝑦
0
0
0
1
0
1
0
1
1
1
1
1
operátory: 𝑥 + 𝑦, x OR y, xy (výrokově disjunkce, algebraicky spojení), X Y (množinově sjednocení)
Implikace
𝑥
𝑦
𝑥→𝑦
0
0
1
1
0
0
0
1
1
1
1
1
Ekvivalence
𝑥
𝑦
𝑥≡𝑦
0
0
1
1
0
0
0
1
0
1
1
1
operátory: 𝑥 ≡ 𝑦, 𝑦 ≡ 𝑥, (výrokově i algebraicky ekvivalence), X Y (množinově ekvivalence nebo rovnost)
Nonkvivalence
𝑥
𝑦
𝑥⊕𝑦
0
0
0
1
0
1
0
1
1
1
1
0
operátory: 𝑥 ⊕ 𝑦, 𝑦 ≢ 𝑥, x XOR y (výrokově i algebraicky negace ekvivalence), X ≢Y (množinově negace
ekvivalence)
Shefferova funkce (negace logického součinu)
𝑥
𝑦
𝑥↑𝑦
0
0
1
1
0
1
0
1
1
1
1
0
Piercova funkce (negace logického součtu)
𝑥
𝑦
𝑥↓𝑦
0
0
1
1
0
0
0
1
0
1
1
0
Logické funkce (1)
Logický výraz = korektně vytvořená posloupnost (symbolů) logických proměnných a funkcí (operátorů) spolu se závorkami
priority sestupně: negace, log. součin, log. součet
např. 𝑥 ∙ 𝑦 + 𝑓 𝑥, 𝑧 = 𝑥 ∙ 𝑦 + 𝑓(𝑥, 𝑧)
= zápis logické funkce
Logické rovnice
ekvivalentní úpravy: negace obou stran, logický součin/součet obou stran se stejným výrazem, . . . , log.
funkce obou stran se stejnými ostatními operandy funkce
=z
Axiomy (Booleovy algebry)
xy=yx
x+y=y+x
x (y + z) = x y + x z
(x + y) z = (x + y) (x + z)
1x=x 0+x=x
x∙x=0 x+x=1
Vlastnosti základních logických operací
0x=0 1+x=1
xx=x
x+x=x
x (y z) = (x y) z
x + (y + z) = (x + y) + z
x=x
x∙y=x+y
x+y =x∙y
x (x + y) = x
59
Logické funkce
zadání pravdivostní tabulkou:
úplně - funkční hodnota f (xi) definována pro všech 2n možných přiřazení hodnot proměnným xi ; 0 < i < n
neúplně - funkční hodnota pro některá přiřazení není definována (např. log. obvod realizující funkci ji neimplementuje)
základní tvary (výrazu):
součinový (úplná konjunktivní normální forma, ÚKNF) - log. součin log. součtů všech proměnných nebo jejich negací (úplných elementárních disjunkcí, ÚED)
𝑥0 + ⋯ + 𝑥𝑛−1 ∙ ⋯ ∙ 𝑥0 + ⋯ + 𝑥𝑛−1 , 𝑋𝑖 = 𝑥𝑖 𝑛𝑒𝑏𝑜 𝑥𝑖 ,
𝑥0 ∙ ⋯ ∙ 𝑥𝑛−1 + ⋯ + 𝑥0 ∙ ⋯ ∙ 𝑥𝑛−1 , 𝑋𝑖 = 𝑥𝑖 𝑛𝑒𝑏𝑜 𝑥𝑖
Převod log. funkce f(xi) na základní tvar
ekvivalentními úpravami a doplněním chybějících proměnných nebo jejich negací
tabulkovou metodou:
1. pro řádky s f (xi ) = 0(1) sestroj log. součet (součin) všech xi pro xi = 0(1) nebo xi pro xi = 1(0) ∙
2. výsledná ÚKNF (ÚDNF) je log. součinem (součtem) těchto log. součtů (součinů)
x
y
z
f(x,y,z)
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
ÚED
ÚEK
(x + y + z) ∙ (x + y + z) ∙ (x + y + z) ∙ (x + y + z
x ∙ y ∙ z + (x ∙ y ∙ z) + (x ∙ y ∙ z) + (x ∙ y ∙ z)
Zjednodušení výrazu logické funkce
optimalizace za účelem dosažení co nejmenšího počtu operátorů (v kompromisu s min. počtem typů operátorů)
důvod: méně (typů) log. obvodů realizujících funkci (menší, levnější, nižší spotřeba, . . . )
metody:
Karnaughova metoda
1. k výrazu v základním součtovém tvaru se sestaví tzv. Karnaughova mapa = tabulka vyplněná 1 v
buňkách reprezentující log. součiny, součiny reprezentované sousedními buňkami se liší v 1 proměnné
2. hledání smyček v mapě splňujících jisté podmínky (min. počet, max. oblast vyplněná 1, počet políček
mocnina 2, mohou se překrývat, pokrytí všech 1)
3. smyčky po vyloučení komplementárních proměnných a jejich negací reprezentují log. součiny výsledného součtového tvaru
Karnaughova metoda
𝑓 =𝑥∙𝑦∙𝑧+𝑥∙𝑦∙𝑧+𝑥∙𝑦∙𝑧+𝑥∙𝑦∙𝑧
𝑥∙𝑦
𝑥∙𝑦
𝑥∙𝑦
𝑧
1
𝑧
𝑓 = 𝑥 ∙ 𝑦 +1 𝑦 ∙ 𝑧 + 𝑥 ∙ 𝑧1
𝑥∙𝑦
1
Úplný systém logických funkcí
= množina log. funkcí, pomocí kterých je možné vyjádřit jakoukoliv log. funkci (libovolného počtu
proměnných)
množina log. funkcí dvou proměnných
(1) negace 𝑥, log. součin 𝑥 ∙ 𝑦 a log. součet 𝑥 + 𝑦
(2) negace𝑥 a implikace 𝑥 → 𝑦
a další
Minimální úplný systém logických funkcí
= úplný systém, ze kterého nelze žádnou funkci vyjmout tak, aby zůstal
Minimální úplný systém logických funkcí
Jediná funkce:
Sheerova (negace log. součinu)
Piercova (negace log. součtu)
důkaz: vyjádření negace a log. součinu (součtu)
Vyjádření logické funkce pomocí Sheerovy nebo Piercovy funkce
1. vyjádření funkce v základním součtovém tvaru
2. zjednodušení výrazu funkce, např. pomocí Karnaughovy metody
3. aplikace De Morganových zákonů pro převedení výrazu do tvaru, který obsahuje pouze
Sheerovy nebo pouze Piercovy funkce
Logické členy
Fyzická realizace logických funkcí
dříve pomocí spínacích relé a elektronek
dnes pomocí tranzistorů v integrovaných obvodech
realizace log. operací pomocí integrovaných obvodů – logických členů, hradel
vstupy = reprezentované log. proměnné
výstup = výsledek realizované log. operace
stavy (signály) na vstupech/výstupu = log. (binární) hodnoty 0/I =míra informace s jednotkou 1 bit
symbolické značky log. členů ve schématech zapojení logických obvodů realizujících lib. log. funkci
Značky logických členů - hradel
Obrázek: Symbolické značky logických členů (podle normy IEC)
Obrázek: Symbolické značky logických členů (tradiční, ANSI)
Použité logické obvody - značky
•
•
𝑥
𝑥
𝑥
𝑥∙𝑦
𝑦
•
𝑥
𝑥+𝑦
𝑦
Minimální úplný systém log. funkcí - NAND
Realizace operátorů NOT, AND a OR pomocí NAND
Minimální úplný systém log. funkcí - NOR
Realizace operátorů NOT, AND a OR pomocí NOR
Nonekvivalence – exclusive OR
𝑥
𝑦
𝑥⊕𝑦
0
0
0
1 x XOR 0y (výrokově
1 i algebraicky negace ekvivalence), X ≢Y (množinově negace
ekvivalence)
0
1
1
1
KMI/YUDIT Úvod do informačních technologií
73
Nonekvivalence pomocí NAND
𝑥⊕𝑦 = 𝑥∙𝑦+𝑥∙𝑦 =𝑥∙𝑦+𝑥∙𝑦 =𝑥∙𝑦∙𝑥∙𝑦 =𝑥∙𝑦∙𝑦∙𝑥∙𝑥∙𝑦
Logické obvody
jeden výstup: realizace jedné log. funkce
více výstupů: realizace více log. funkcí zároveň realizace vícebitové log. funkce
n-tice vstupů: reprezentace vícebitových (n-bitových) log. proměnných = vícebitový log. obvod
druhy:
kombinační: stavy na výstupech obvodu (tj. funkční hodnota) závisí pouze na okamžitých stavech na vstupech (tj. hodnotách proměnných)
sekvenční: stavy na výstupech obvodu (tj. funkční hodnota) závisí nejen na okamžitých stavech na vstupech (tj. hodnotách proměnných),
ale také na předchozích stavech na vstupech
Komparátor
provádí srovnání hodnot dvou log. proměnných A a B na vstupu
tři výstupy udávající pravdivost vztahů: A < B, A > B a A = B,
realizace tříbitové log. funkce:
Y< = Y (A < B); Y> = Y (A > B);Y= = Y (A = B)
𝑌< = 𝐴 ∙ 𝐵
𝑌< = 𝐴 ∙ 𝐵
Multiplexor
vybraném na základě n-bitové hodnoty na adresním vstupu A
kromě výstupu Q navíc ještě negovaný (invertovaný) výstup Q
např. čtyřvstupý (4 datové vstupy, dvoubitový adresní vstup) realizuje log. funkci
Q = 𝐴0 ∙ 𝐴1 ∙ 𝐷0 + 𝐴0 ∙ 𝐴1 ∙ 𝐷1 + 𝐴0 ∙ 𝐴1 ∙ 𝐷2 + 𝐴0 ∙ 𝐴1 ∙ 𝐷3
Multiplexor
Binární dekodér
S0
S1
S2
S3
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
Binární dekodér
Binární sčítačka
0 + I = I I + I = I0
sčítačka sečte binární hodnoty v každém řádu dvou n-bitových proměnných A a B podle pravidel aritmetiky pro sčítání, tj. s přenosem hodnoty do vyššího řádu
realizuje log. funkce součtu Si a přenosu ri z řádu i
do vyššího řádu:
𝑆𝑖 = 𝐴𝑖 ⨁𝐵𝑖 ⨁𝑟𝑖−1 𝑟𝑖 = 𝐴𝑖 ∙ 𝐵𝑖 + (𝐴𝑖 ∙ 𝐵𝑖 ) ∙ 𝑟𝑖−1
Binární sčítačka
Sekvenční logické obvody
ale také na předchozích stavech na vstupech
předchozí stavy na vstupech zachyceny vnitřním stavem obvodu
nutné identifikovat a synchronizovat stavy obvodu v čase
čas: periodický impulsní signál = „hodiny” (clock), diskrétně určující okamžiky synchronizace obvodu, generovaný krystalem o dané frekvenci
zpětné vazby z (některých) výstupů na (některé) vstupy
Přenos dat
přenos dat (hodnot vícebitových log. proměnných):
sériový: bity (hodnoty 0=I) přenášeny postupně v čase za sebou po jednom datovém vodiči
paralelní: bity přenášeny zároveň v čase po více datových vodičích
úlohy transformace mezi sériovým a paralelním přenosem
Klopné obvody
nejjednodušší sekvenční obvody
druhy:
astabilní: nemají žádný stabilní stav, periodicky (např. podle hodinových impulsů) překlápí výstupy z jednoho stavu do druhého;
použití jako generátory impulsů
stabilním stavu; použití k vytváření impulsů dané délky
řídícím signálem překlopen do druhého; použití pro realizaci pamětí
řízení:
asynchronně signály (0 nebo I) na datových vstupech
synchronně hodinovým signálem
hladinou signálu: horní (I) nebo dolní (0)
hranami signálu: nástupní (0 → I) nebo sestupní (I → 0)
Klopné obvody (typu) RS
nejjednodušíí bistabilní, základ ostatních
jednobitový paměťový člen
asynchronní vstupy R (Reset) pro nulování log. hodnoty na výstupu Q (v čase i) a S (Set) pro nastavení
hodnoty kromě výstupu Q navíc ještě negovaný (invertovaný) výstup 𝑄
Funkce klopného obvodu RS
R
S
𝑸𝒊
𝑸𝒊
0
0
𝑸𝒊−𝟏
𝑸𝒊−𝟏
0
1
1
0
1
0
0
1
1
1
N/A
N/A
Klopné obvody (typu) D
realizace pomocí klopného obvodu RS, navíc vstupy R a S
signál D (data) nastavuje výstup
signál E (enable, česky povolit ) povoluje nebo blokuje nastavení výstupu
Funkce klopného obvodu D
D
E
𝑸𝒊
𝑸𝒊
0
1
0
1
1
1
1
0
0, 1
0
𝑸𝒊−𝟏
𝑸𝒊−𝟏
Klopné obvody (typu) J-K
zachovává oba řídící signály: nastavení (J) – nulování (K)
typ Master-Slave: dvoufázový (master, slave), synchronní řízení stavu vstupu J nástupní i sestupní hranou
hodinového signálu na vstupu C
Obvody v počítačích
sériová sčítačka: (aritmetické) sčítání log. hodnot dodávaných na vstupy v sériovém tvaru po jednotlivých řádech
paralelní registr (střádač): vícebitová paměť pro hodnotu dodanou paralelně na více vstupů
sériový (posuvný) registr: vícebitová paměť pro hodnotu dodanou sériově na vstupu, použití pro transformaci sériových dat na paralelní
čítač: paměť počtu impulsů na hodinovém vstupu, binárně reprezentovaný počet na vícebitovém výstupu
obvodů. 1 / Jean-Michel Bernard, Jean Hugon, Robert le Corvec ; přeložili Vladimír
Drábek, Jan Hlavička, Zdeněk Pokorný . Praha : SNTL - Nakladatelství technické literatury,
1984 204 s.
Příště
(CPU) a vnitřních pamětí (RAM, cache). Interní součásti počítače, přídavné karty
(grafická, zvuková, síťová,
multimediální), vnější paměti (pevné disky a disková pole). Periferie a externí sběrnice
počítače (USB). Monitor (CRT, LCD), polohovací zařízení (klávesnice, myš aj.), datové
mechaniky a média (floppy, CD, DVD), tiskárna a skener, modem.