V počítači jsou jen jednotky a nuly



Podobné dokumenty
Binární logika Osnova kurzu

12. Booleova algebra, logická funkce určitá a neurčitá, realizace logických funkcí, binární kódy pro algebraické operace.

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Logické řízení. Náplň výuky

Úvod do informačních technologií

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody

Pohled do nitra mikroprocesoru Josef Horálek

Základy číslicové techniky z, zk

Úvod do informačních technologií

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

KOMBINAČNÍ LOGICKÉ OBVODY

2. ÚVOD DO OVLÁDACÍ TECHNIKY

Sada 1 - Základy programování

MODERNIZACE VÝUKY PŘEDMĚTU ELEKTRICKÁ MĚŘENÍ

Matematika B101MA1, B101MA2

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

LOGICKÉ OBVODY

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE

DIGITÁLN LNÍ OBVODY A MIKROPROCESORY 1. ZÁKLADNÍ POJMY DIGITÁLNÍ TECHNIKY

KOMBINAČNÍ LOGICKÉ OBVODY

2. LOGICKÉ OBVODY. Kombinační logické obvody

Číslicové obvody základní pojmy

Matematika I. Přednášky: Mgr. Radek Výrut, Zkouška:

Programování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí

Architektury počítačů a procesorů

Y36SAP Y36SAP-2. Logické obvody kombinační Formy popisu Příklad návrhu Sčítačka Kubátová Y36SAP-Logické obvody 1.

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Číselné soustavy a převody mezi nimi

ČÍSELNÉ SOUSTAVY PŘEVODY

3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

Způsoby realizace této funkce:

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

4. Elektronické logické členy. Elektronické obvody pro logické členy

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

C2115 Praktický úvod do superpočítání

Obsah DÍL 1. Předmluva 11

Matematická analýza 1

OVLÁDACÍ OBVODY ELEKTRICKÝCH ZAŘÍZENÍ

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Algoritmizace a programování

I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í. výstup

MĚŘENÍ Laboratorní cvičení z měření Měření parametrů logického obvodu část Teoretický rozbor

2.7 Binární sčítačka Úkol měření:

Architektura počítačů

STRUKTURA POČÍTAČŮ JIŘÍ HRONEK, JIŘÍ MAZURA KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO

Booleovy algebry. Irina Perfilieva. logo

teorie logických spojek chápaných jako pravdivostní funkce

Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl Tematická oblast ELEKTRONIKA

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ MEII KOMBINAČNÍ LOGICKÉ OBVODY

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

Informační a komunikační technologie

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Minimalizace logické funkce

1. Základní pojmy a číselné soustavy

Jak to celé vlastně začalo

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Kódováni dat. Kódy používané pro strojové operace

Struktura a architektura počítačů (BI-SAP) 5

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Základní jednotky používané ve výpočetní technice

Zavedení a vlastnosti reálných čísel

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

Programovací jazyk Pascal

ČÍSELNÉ SOUSTAVY. Číselnou soustavu, která pro reprezentaci čísel využívá pouze dvou číslic, nazýváme soustavou dvojkovou nebo binární.

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

U Úvod do modelování a simulace systémů

Paměti cache. Cache může být realizována softwarově nebo hardwarově.

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

1 Historie výpočetní techniky

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Výroková logika. Teoretická informatika Tomáš Foltýnek

Číselné soustavy. Binární číselná soustava

0. ÚVOD - matematické symboly, značení,

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

DUM 02 téma: Elementární prvky logiky výklad

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Otázka TECH číslo 1 Str. 1/7

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení

Historie výpočetní techniky

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

výrok-každésdělení,uněhožmásmyslseptát,zdaječinenípravdivé, aproněžprávějednaztěchtodvoumožnostínastává.

LEKCE 6. Operátory. V této lekci najdete:

Architektura počítače

P4 LOGICKÉ OBVODY. I. Kombinační Logické obvody

10. Soustava lineárních rovnic - substituční metoda

Výroková logika - opakování

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Transkript:

V počítači jsou jen jednotky a nuly Obsah 1. Dvojková číselná soustava 2. Základy práce v dvojkové soustavě 3. Booleova algebra, logické funkce a binární číslice (bity) 4. Základní logické operátory 5. Úplné systémy logických funkcí a jejich význam 6. Minimální úplné systémy logických funkcí 7. Obsah další části tohoto seriálu 1. Dvojková číselná soustava V první části tohoto seriálu jsme si prozatím v teoretické rovině ukázali von Neumannovu a Harvardskou architekturu počítačů. Zajímavé je, že tyto architektury nám nic neříkají o konkrétních technologiích, které mají být při výstavbě počítačů použity i díky tomu je ostatně teorie stará více než šedesát let stále platná, takže i ty nejmodernější osobní počítače mají architekturu prakticky shodnou se svými prapradědečky z roku 1950. Samotná technologie je samozřejmě výrazně odlišná a kvůli rozdílnému pokroku v různých oblastech se musely zavést některé pomocné prvky, které se v původním návrhu architektury nevyskytovaly. Jedná se například o vyrovnávací (cache) paměti používané pro překlenutí rychlostního rozdílu mezi mikroprocesory a operačními paměťmi, protože výkon mikroprocesorů roste mnohem rychleji než klesá doba přístupů do dynamických pamětí (poněkud paradoxní je, že ani přístup k programování se za posledních 50 let nijak revolučně nezměnil, ovšem touto problematikou se zde nemůžeme zabývat). Pro připomenutí: Von Neumannova architektura

Teoretický návrh von Neumannovy architektury také nijak neurčuje, s jakými informacemi má vlastně počítač pracovat. Některé z prvních počítačů například přímo zpracovávaly informace uložené v desítkové číselné soustavě, protože použitá technologie mechanické převody či relé bylo možné zkonstruovat tak, aby pracovaly s deseti symboly. Dodnes se můžeme s touto technologií setkat. Typicky se jedná o starší poklady, které jsou zejména v menších provozovnách stále používány (možná si majitelé neuvědomují, že za jednu takovou pokladnu by si mohli koupit deset pokladen moderních) a které v desítkové soustavě zpracovávají jednoduché aritmetické operace sčítání a násobení. Historická mechanická pokladna Jedná se ve své podstatě o přímé potomky slavného sčítacího strojku Blaise Pascala. Podruhé se můžeme ještě dnes s desítkovou technologií setkat v releových telefonních ústřednách, které

v některých případech také přežily až do dnešní doby (v jedné takové ústředně mají například stále fungující součásti vyrobené za druhé světové války, ještě s hákovými kříži u loga výrobce). Ovšem s příchodem elektronek a po nich tranzistorů se jasně ukázalo, že pracovat přímo s deseti symboly, tj. s čísly 0 9 převedenými do elektrické podoby, není příliš výhodné, protože by to vedlo k vytvoření pomalých, poruchových a složitých systémů. Lepší je vytvořit takové elektronické obvody, které dokážou pracovat pouze se dvěma stabilními stavy, což vede na jedné straně ke značnému zjednodušení těchto obvodů, na straně druhé k větší rychlosti zpracování s možností implementace i složitých funkcí, prakticky univerzální kompatibility se všemi budoucími architekturami atd. I z teorie informace ostatně vyplývá, že maximální využití nějakého přenosového kanálu umožňuje číselná soustava o základu 2 nebo 3 (ostatně, kolik navzájem odlišných hodnot můžete vyjádřit pomocí svých deseti prstů?). V dalším textu se tedy budeme výhradně zabývat pouze těmi součástmi počítačů, které interně pracují s binárním (dvojkovým) zobrazením číselných hodnot a veličin. Prakticky všechny moderní počítače a jejich součásti toto kritérium splňují, včetně externích datových médií. I některé staré elektromechanické počítače používaly dvojkovou soustavu (zde je vidět nekonečná děrná páska představující paměť programu) Binární (číselná) soustava má význam i z filozofického hlediska jedná se o prakticky maximální zjednodušení modelů existujícího světa do formy množiny binárních symbolů; a vlastně jakákoli civilizace pravděpodobně dříve či později dojde ke stejnému způsobu zápisu informací (vlastně se tím do značné míry eliminuje potřeba vývoje písma). Dvojková soustava je známá už ze staré Indie či Číny (kniha I'Ching, http://en.wikipedia.org/wiki/i_ching#the_hexagrams) a také z Koreje.

V knize I'Ching je použita binární soustava z osmi základních trigramů a 64 hexagramů 2. Základy práce v dvojkové soustavě Princip dvojkové soustavy je ve své podstatě jednoduchý snažíme se nějakou informaci či stav popsat skupinou pouze dvou stavů zapisovaných pomocí dvou symbolů, přičemž se jedná o poziční zápis, tj. záleží na pozici daného symbolu oproti symbolům ostatním. V Morseově abecedě se používaly symboly čárky a tečky, Korejci používají symbol dlouhé čárky (břevna) a dvou krátkých čárek a v oblasti zpracování informace se používají číslice 0 a I (pro odlišení od desítkové soustavy zcela záměrně používám symbol I a ne 1, nulu samozřejmě není nutné rozlišovat). Přitom platí, že pomocí N uspořádaných binárních symbolů/číslic (nazývejme je bity z anglického akronymu BInary digit) lze vyjádřit celkem 2 N různých navzájem odlišných stavů, protože platí vztah: 2 0 2 1 2 2 2 N-1 =2 N To o jaké stavy se konkrétně jedná či co vyjadřují, již záleží na jejich aplikaci: může se jednat o interval přirozených čísel, znak z nějaké abecedy, barvu pixelu na obrazovce, hlasitost přehrávaného zvukového samplu, či stavy jakéhokoli jiného abstraktního či reálného objektu. Přitom si musíme uvědomit, že u této množiny stavů není implicitně řečeno ani myšleno, že se jedná například o celá kladná čísla, to je pouze jedna z mnoha možných interpretací zvolené bitové N-tice (programátoři mají tendenci považovat celá kladná čísla za přirozenou interpretaci bitové N-tice, to však vychází pouze z jejich pohledu na svět a z jejich téměř každodenních zkušeností). Reprezentaci momentálního stavu abstraktního či reálného objektu si můžeme představit jako zobrazení z množiny binárních stavů na elementy vzorové (a obecně neuspořádané) množiny. Nejčastěji používanými zobrazeními jsou zobrazení množiny binárních stavů na již zmíněný

interval celých kladných čísel (Unsigned Integers), popřípadě na interval celých čísel (Signed Integers). Pro jednoduchost si řekněme, jak jsou typicky reprezentována celá kladná čísla v dvojkové soustavě. Jedná se o N uspořádaných binárních číslic (bitů), neboli vektor bitů [x N-1 x N-2 x 1 x 0 ], pomocí kterého je zapsáno číslo, jehož hodnotu lze v desítkové soustavě vypočítat následovně: 2 N-1 x N-2 +2 N-2 x N-1 + +2 1 x 1 +2 0 x 0 Následuje jednoduchý příklad převodu binárního čísla I0I0I0 na desítkovou hodnotu: 2 5 I+2 4 0+2 3 I+2 2 0+2 1 I+2 0 0= 32+8+2=42 Zajímavé je také sledovat, jak často dochází v binární soustavě k přenosu mezi řády při zápisu posloupnosti hodnot. U desítkové soustavy až teprve po devítce následuje přenos do dalšího řádu, zatímco u binární soustavy přenos nastává již po jedničce: Desítková soustava Dvojková (binární) soustava 0 00000 1 0000I 2 000I0 3 000II 4 00I00 5 00I0I 6 00II0 7 00III 8 0I000 9 0I00I 10 0I0I0 11 0I0II 12 0II00 13 0II0I 14 0III0 15 0IIII 16 I0000 17 I000I 18 I00I0 19 I00II

3. Booleova algebra, logické funkce a binární číslice (bity) V předchozí kapitole jsme si řekli, že pomocí dvojkové soustavy je možné zaznamenat stavy různých objektů, které jsou převedeny na posloupnost bitů. S těmito posloupnostmi lze provádět různé operace. Pokud se například jedná o přirozená, čísla, je možné provést jejich součet, porovnání apod. (tím se budeme podrobněji zabývat v další části tohoto seriálu). Zajímavé a pro další použití binárních hodnot (bitů) v počítačích velmi důležité však je, že existuje celý matematický aparát určený pro zpracování logických výroků, které jsou založeny na dvou stavech pravda či nepravda. Vzhledem k tomu, že se jedná pouze o dva stavy, je jejich mapování na binární číslice 0 a I zcela jednoznačné: 0 značí nepravdu a I pravdu. Logické výroky mohou mít tvar výrazů, pro jejichž zpracování se používá matematický aparát nazvaný Booleova algebra, který je vybaven potřebnými pravidly a operátory. Jednotlivé operátory Booleovy algebry je dokonce možné poměrně jednoduchým způsobem implementovat pomocí elektrického obvodu, který pracuje s hodnotami pravda (I) a nepravda (0), reprezentovanými buď různými úrovněmi napětí nebo proudu. Dosáhli jsme tedy následující shody s dalekosáhlými důsledky: jak pro informace (převedené na dvojková čísla), tak i pro způsob jejich zpracování (Booleova algebra, resp. logické funkce) je možné použít dvojkovou soustavu a tím pádem i elektrické obvody pracující pouze se dvěma různými stavy. To je velmi důležitý závěr, na jehož základě je postavena dnešní technologie počítačů. Mimo jiného to znamená, že části počítače určené pro zpracování informací i části počítače určené pro řízení a (logické) rozhodování mohou být postaveny na stejných typech obvodů. 4. Základní logické operátory Základ Booleovy algebry spočívá v logických proměnných, které mohou nabývat pouze hodnot označených symboly 0 a I, a logických funkcí n-proměnných, které také mohou nabývat pouze hodnot 0 nebo I. Logické funkce jsou sestaveny pomocí logických operátorů. Jsou přitom definovány tři základní logické operátory, které mezi logickými proměnnými provádějí tři základní operace: negaci, logický součin a logický součet. Výsledky těchto základních operací lze vyjádřit buď vzorcem nebo tabulkou tabulární formu je možné použít z toho důvodu, že jsou použity pouze dva stavy, na rozdíl od funkcí vracejících přirozené, reálné či dokonce komplexní hodnoty. Nejjednodušší je funkce negace, což je funkce jedné proměnné vyjádřená vztahy:!0=i!i=0 Funkce (operace) logického součtu, neboli disjunkce (+) se také nazývá funkce nebo (or), což dává smysl, když si uvědomíme, že symbol 0 značí nepravdu a symbol I pravdu: 0+0=0 0+I=I

I+0=I I+I=I Všimněte si, že se v tomto případě nejedná o normální součet (v něm by výsledek poslední operace byl I0), ale o logický součet se dvěma symboly, nikoli čísly. Funkce (operace) logického součinu, neboli konjunkce (^) se nazývá funkce a (and) a je vyjádřena následujícími vztahy: 0^0=0 0^I=0 I^0=0 I^I=I S výše uvedenými operacemi a jejich vzájemnou kombinací je možné vyjádřit jakoukoli logickou funkci. Pro obě binární operace, tj. operaci logického součtu i součinu, platí běžné vlastnosti známé i z klasické algebry: existence nulového prvku vzhledem k součtu, existence jednotky vzhledem k součinu, asociativita, komutativita, distributivnost součinu vzhledem k součtu a navíc ještě distributivnost součtu vzhledem k součinu (ten se v klasické algebře neobjevuje). Navíc ještě v Booleově algebře platí de Morganovy zákony, které se často používají pro zjednodušení logických funkcí: existence nuly vzhledem k logickému součtu x+0=x uzavřenost operace logického součtu x+i=i x+x=x existence nuly vzhledem k logickému součinu x^0=0 existence jednotky vzhledem k logickému součinu x^i=x uzavřenost operace logického součinu x^x=x komutativnost logických operací x+y=y+x x^y=y^x asociativnost logických operací x+y+z=(x+y)+z=x+(y+z) z^y^z=(x^y)^z=x^(y^z) distributivnost obou! logických operací x^(y+z)=x^y+x^z x+(y^z)=(x+y)^(x+z) de Morganovy zákony (všimněte si "prohození" součtu za součin při rozepsání negace)!(x+y)=!x ^!y!(x^y)=!x +!y

5. Úplné systémy logických funkcí a jejich význam Vzhledem k tomu, že logické funkce jsou postavené pouze nad dvěma symboly, má smysl se ptát, kolik vlastně existuje navzájem rozdílných funkcí pro n proměnných. Tato otázka například postrádá praktický smysl v oboru reálných čísel, protože nám nijak nepomůže při dalším zjednodušování či úpravách algebraických výrazů, ovšem v případě Booleovy algebry smysl má, jak uvidíme dále. Pro jednu logickou proměnnou existují 2 21 =4 funkce: konstantní pravda, konstantní nepravda, identita a negace. Pro dvě proměnné existuje celkem 2 22 =16 různých funkcí nabývajících všech možných hodnot pro všechny možné kombinace dvou proměnných. Pro tři proměnné je to již 2 23 =256 různých funkcí a pro více proměnných tento počet neustále roste. Ovšem platí, že je vždy možné pomocí výše uvedených vztahů provést redukci těchto funkcí na tři základní funkce jedné a dvou proměnných popsané výše: negace, logický součin a logický součet. Tato trojice funkcí tvoří úplný logický systém, tj. všechny možné kombinace lze dekomponovat na sadu právě těchto funkcí. To by ovšem mohlo značit, že při realizaci logických funkcí v počítači si vystačíme se třemi typy obvodů, neboli logických členů. Skutečně je tomu tak, negace, součin i součet dokonce dostaly vlastní značky použité v elektronických schématech. Poznamenejme, že se místo termínu logický člen také používá pojmenování hradlo. Značky používané v elektronických schématech pro funkce logické negace, logického součinu a logického součtu 6. Minimální úplné systémy logických funkcí V praxi se většinou nesetkáme s přímým použitím logických členů, které by realizovaly logickou negaci, součet a součin. Namísto toho se (především v minulosti při použití integrovaných obvodů s malou a střední integrací) těšily velké popularitě takzvané minimální úplné systémy, ve kterých se místo trojice rozdílných logických funkcí používaly buď funkce dvě (například and a not) nebo dokonce pouze jediná funkce. Jednou z variant minimálního úplného systému je

systém používající funkci not-or neboli NOR, popř. funkci not-and neboli NAND. Důvodů, vedoucích ke snížení počtu funkcí, je více. Především dochází ke snížení různých typů součástek ve stavebnicích integrovaných obvodů, což se nepřímým způsobem projeví na výtěžnosti výroby i samotné ceně součástek. Například do pouzdra integrovaného obvodu se 14 vývody lze integrovat celkem čtyři logické funkce se dvěma vstupy a jedním výstupem. Pokud návrh nějakého systému (třeba části řadiče či ALU) vede k použití dvou funkcí logického součinu a dvou funkcí logického součtu, znamenalo by to, že by musel buď existovat přesně tento integrovaný obvod, nebo by se musely použít integrované obvody dva, přičemž by polovina z jejich plochy zůstala nevyužita. V případě, že se logický součin i součet převede na jednu funkci, například NAND, použije se pouze jeden integrovaný obvod. Druhou výhodou jsou naprosto shodné charakteristiky (elektrické zatížitelnost, i časové) všech logických členů implementujících jedinou logickou funkci. Pokud by bylo použito více různých typů logických členů, pravděpodobně by při jejich realizaci docházelo k různým úpravám vedoucím například ke vzniku hazardů. Pro některé technologie (například TTL) je dokonce lepší implementovat NAND než přímou funkci AND. Že je možné minimální logický systém vytvořit, dokazuje i následující obrázek, na němž jsou pomocí funkce NAND realizovány všechny tři základní logické funkce i další dvě funkce NOR a XOR (non-ekvivalence):

Pomocí hradla typu NAND lze realizovat i další logické funkce U integrovaných obvodů s velkou a velmi velkou integrací se již setkáváme s jinými problémy při jejich návrhu, takže se v nich běžně používají i základní logické funkce či jejich negované varianty vše záleží na použité technologii, která určuje, které typy funkcí se snáze realizují a které musí být rozloženy na podfunkce.