CO JE CO ?
Verze 1.0.
SPŠel-it Dobruška, 2014
Ing. Josef Hloušek
Tento text může být využíván kýmkoliv pro cokoliv, pokud to bude pro zainteresované
dostatečně pochopitelné. Na SPŠel-it je vyučováno několik předmětů, které mají k textu blízko.
Text není učebnice, jen diskutuje otázky a odpovědi, slýchané při úmyslné nebo náhodné
přítomnosti autora při výuce a různých zkouškách na SPŠel-it. Text je řazen tak, aby byl
především v druhé části co nejlépe použitelný pro skutečné zájemce o práci s mikrořadiči
PIC16F.
Text předpokládá vědomosti na úrovni dokončeného základního vzdělání, výhodou může být
znalost technické angličtiny.
Všem čtenářům se omlouvám za řadu subjektivních názorů. Pokud někdo najde v textu něco,
s čím nebude souhlasit, nechť mi to nenásilnou formou oznámí.
1
Obsah:
A. Obecná témata směřující k mikrořadičům . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1. Co bylo dříve? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Co je to počítač? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3. Co je to osobní počítač? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4. Co je to mikropočítač? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5. Co je to procesor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6. Co je to ALU? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7. Co je to řadič? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8. Co je to mikroprocesor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9. Co je to mikrořadič? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10. Co je to architektura mikrořadiče . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
11. Co je to instrukční soubor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
12. Co je to instrukce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
13. Co je to taktování instrukce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
14. Co je to paměť programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
15. Co je to paměť pro data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
16. Co je to zásobník . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
17. Co je to přerušení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
18. Co je to vývojový diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2
A. Obecná témata směřující k mikrořadičům
Oddíl A diskutuje terminologii počítačů, mikropočítačů, mikrořadičů tak, aby v oddíle B bylo více
srozumitelné, o čem je řeč. Často je použit výlet do historie počítačů, kdy odborná terminologie
vznikala a většinou se používá i v roce 2014.
Terminologie někdy není úplně jednotná, brusiči českého jazyka zvláště v minulosti nesnášeli
termíny jako komputer, procesor, akumulátor, assembler. Proto jsou v textu většinou používány
vedle českých výrazů i anglické (např Stack = zásobník), které jsou přesnější a jednoznačné.
Oddíl A se snaží odborné termíny vysvětlit pokud možno obecněji, aby zájemce o detailní
poznání osmibitových mikrořadičů PIC16 uměl pochopit výhody i nevýhody unikátní architektury
mikrořadičů Microchip.
Oddíl A zdaleka není úplný. Autor zve zájemce o doplnění oddílu A o předání námětů nebo
přímo příspěvků, které by mohly text zhodnotit. Přednost budou mít náměty, které lze přímo
nebo nepřímo využít pro osmibitové mikrořadiče, zejména PIC16F. Autor si vyhrazuje právo
příspěvky upravit jazykově i odborně, případně je odmítnout. Honorář za příspěvky? Přívětivé
jednání.
3
1. Co bylo dříve?
Píše se rok 1992. Jsem v národním podniku MEZ Náchod už 19 let. MEZ Náchod vyrábí
krokové motory a řídící elektroniku s použitím nejmodernějších součástek té doby.
Řídicí systém pro brusky TOS Hostivař používal celou řadu logických obvodů MH74xx.
Řídicí systém MEZ Náchod (dnes Atas)
příčného posuvu brusky. Řídí rychlost a polohu
přísuvu
brusného
kotouče
ve
fázích
rychloposuvu bez broušení, posuvu při
broušení a vyjiskřování s
Akčním členem je krokový motor, snímačem
polohy i rychlosti je rotační inkrementální čidlo
200impůlzů na 1 otáčku.
Rozměry cca 45x30x40cm
MEZ Náchod jde ale od desíti k nule, většina dobrých odborníků firmu opustila, ohromné
množství zaměstnanců „podniká“ v pracovní době na telefonech placených zaměstnavatelem.
Většinovým majitelem se stává syn bývalého vlastníka, který se nostalgicky vrací k zastaralému
výrobnímu sortimentu z dob svého otce.
V Pochodni, což jsou pořád ještě nejčtenější noviny ve Východočeském kraji, je inzerát:
SPŠE Dobruška přijme učitele oboru Automatizační technika na plný úvazek. Nástup
1.9.1992. To je za tři neděle. Jedu do Dobrušky, pan ředitel Mikeš se ptá na moji kvalifikaci.
VAAZ Brno ho udiví, ale ujišťuji ho, že studijní obor „Naváděcí systémy řízených střel“ je zcela
určitě automatizace. Mám za sebou i praxi jako externí učitel na několika školách a tak mě pan
ředitel nabízí překvapivých 3700 Kč za 22 hodin práce týdně.
Převážná část mého pedagogického úvazku je orientována na předmět Automatizace ve
čtvrtém ročníku, je to maturitní předmět. A těžištěm je třída, ve které je třídním učitelem kolega
Štěpán. Nároky na vědomosti studentů, které jejich třídní během tří předchozích let vznášel,
vedly ke snížení počtu žáků ve třídě na 17! Z nich je asi třetina děvčat. Všech sedmnáct má ale
velmi dobré vědomosti.
Výpočetní technika ve škole není a ani se nevyučuje. Osobní počítače v Česku jsou drahou
vzácností. „Špičkově“ vybavená je učebna s reléovou logickou stavebnicí na celé jedné stěně.
Propojovací dráty jsou opatřeny na obou koncích banánky, ve kterých jsou většinou nacpané
papírky. Praktické hodiny proto obvykle začínají odhalováním ucpaných vodičů, pokračují jejich
čištěním a končí (aby to učitel neviděl) jejich opětovným ucpáváním.
Zajímavý je předmět Základy elektrotechniky, jakási náhražka za fyzikální obor elektřina a
magnetizmus. Je to v prvním ročníku, ve třídě v přízemí. (V roce 2014 je to učebna U11).
Objevuji u zadní stěny učebny velmi pečlivě uzamčené skříně, které obsahují dobré až
vynikající pomůcky na zmíněné fyzikální obory: generátor statické elektřiny, cívky, magnety a
velké měřicí přístroje pro experimenty s elektromagnetickou indukcí a řadu dalších. Pomůcky ve
skříních jsou v dobrém stavu, protože už delší dobu je nikdo nepotřeboval. Po značném úsilí
získávám od skříní klíče a daří se mně vyučovat předmět „Základy“ teoreticky i prakticky. Třída
to oceňuje nefalšovaným zájmem. V roce 2014 se zmíněné skříně nacházejí v učebně U32 ve
značně ochuzeném stavu co do kvality i kvantity a v podstatě nepoužitelné.
4
Velikonoční prázdniny jsou příležitostí ke kolizi s organizací dovolených a studijního volna ve
škole. S paní účetní nenacházím společnou řeč. Nechávám to plavat. Zdá se ale, že ne tak pan
ředitel. Příští týden se v mé hodině Elektrotechniky ukázal bez upozornění na hospitaci. Neřekl
Bé ani Cé. Za další týden mě nechal vzkázat, že mám nedostatečnou kvalifikaci a že mě čeká
nástavbové studium pedagogického minima. Moje pracovní smlouva, kterou pan ředitel
nedávno podepsal, je na dobu omezenou. Na jeden školní rok. Jednoduché řešení. Na nové
smlouvě nemám zájem, pan ředitel také ne.
Květen a červen jsou věnovány především přípravě čtvrtého ročníku na maturitu. Studenti
Forche, Šedivý, Skalický jsou schopni mě nahradit ve výkladu maturitních témat pro zbytek
třídy. Na vyzvání a zpaměti. Ostatní za nimi příliš nezaostávají. Je to skutečně dobrá třída.
V červnu končím na SPŠE Dobruška první rok profesionální kariéry učitele. Ještě netuším, že
se vrátím.
Několik dalších let působím ve firmě LEVEL v Náchodě, vyrábějící kurzovní tabule a telefonní
tarifikátory. Všechny výrobky jsou ve firmě konstruovány a vyráběny a obsahují mikrořadiče.
Určitou starostí je zachování jejich „blbovzdornosti“ k uživatelům. Velmi zajímavá je práce na
špičkovém programu PCAD pro návrh plošných spojů.
Na podzim 1996 správní rada LEVEL vyhazuje asi 15 zaměstnanců. No dobře, budu si hledat
práci jinde. Našel jsem v ECOM České Meziříčí, což je velkoobchod s elektronickými
součástkami.
Zajišťuji technickou podporu prodeje elektronických součástek od rezistorů až po mikrořadiče
ZiLOG. Jednou ročně pořádáme pro naše zákazníky Meeting ECOM – ZiLOG. V roce 1999 je
to v Českém Meziříčí v hospodě „Na Staré“. Mezi hosty je i exkolega Štěpán ze SPŠE
Dobruška.
ECOM nabízí novinku na českém trhu, hardwarový emulátor pro řadu osmibitových mikrořadičů
ZiLOG Z8. Emulátor umožňuje ladění programů pro levné typy mikrořadičů, které cenou i
technickými parametry získávají oblibu i v Česku. Cena emulátoru je 5000 Kč a je dostupná i
školám. Po Meetingu mě kontaktuje Karel Štěpán se šokující nabídkou. SPŠE koupí 10
emulátorů a nabízí mně výuku předmětu Mikroprocesory. Externě, 5 hodin týdně. Po dohodě
s majitelem ECOM a současně mým šéfem beru.
5
Všichni studenti mají paralelně předmět Mikroprocesorové systémy, ve kterém kolega Štěpán
vyučuje mikrořadiče (prosazuje název mikropočítače) Intel 8051. Assembler mikrořadiče 8051
je jiný než assembler ZiLOG Z8. „Zet osmička“ je ve světě unikátní, (mimochodem všechny
registry RAM jsou použitelné jako střadač), ve světě i v Česku využívá obliby kdysi nejlepších
mikroprocesorů vůbec, známých Z80 a Z180, kterými byly osazeny jak první domácí počítače
Sinclair tak i americké raketoplány. Výhodou 8051 je výrazně větší počet uživatelů.
SPŠE má nově vybavenou učebnu se 16 osobními počítači s operačním systémem Windows,
které jsou pro používání emulátorů Z8 podmínkou.
Na 10 pracovištích pracuje 10 studentů naprosto nezávisle, výsledky práce vidí okamžitě,
v reálném čase, na reálném hardwarovém elektronickém obvodě. Programy žáci neopisují ale
píšou. A to nejlepší nakonec – s tímto způsobem programování se studenti mohou setkat po
opuštění školy, pokud se hodlají realizovat v oboru. Řada studentů, mezi nimi vynikají Laža a
Tošovský, si přináší svoje elektronické stavebnice, pískají na piezoměniče, točí krokovým
motorem.
Pozoruji, že studentům tento způsob výuky vyhovuje a jsou schopni splnit jednu z mých
„pedagogických“ zásad: Do konce školního roku musejí být 2 studenti lepší než já.
Za čtyři roky působení na SPŠE se ale objevuje jiná skutečnost. Úroveň studentů se rapidně
zhoršuje. Je výrazně horší, než byla úroveň učebního oboru na učilišti v Novém Městě, na
kterém jsem po dobu jednoho roku působil nedávno. A porovnávat úroveň současných studentů
SPŠE a výše zmiňované „výběrové“ třídy SPŠE z roku 1993 je prostě nemožné. Zaslechnu
výrok kolegy Štěpána: „ Jedinou dobrou věcí ředitele Mikeše je snaha vyházet ze školy všechny
„blbé studenty.“ To se ale nedaří.
Pak, ke konci června 2002, si mě volá pan ředitel. Oznamuje, že ve škole je pro moje další
působení málo místa. Není to pro mě až tak velké překvapení. I když jsem si toho nějak
zásadně nevšímal, studentů ubylo a logicky první, kdo je nepotřebný, je externista
se šestihodinovým úvazkem. Opouštím SPŠE už podruhé beze známek lítosti. Jen tak koutkem
oka pozoruju, že z některých mých kolegů padá nervozita, která z nich z mé přítomnosti mírně
či více vyčuhovala.
V březnu 2007 jsem při cestě do ECOM zastihl zástupce ředitele SPŠE a mého souseda
v jedné osobě. Při debatě, o škole jak jinak, zjišťuji, že nový ředitel je špičkový ředitel, který
výrazně zvýšil image školy a studentů přibývá. A tak chybějí učitelé, zejména učitelé odborných
předmětů. Dostávám nabídku. Přemýšlím jen krátce. V ECOMu budu rok nasluhovat a
současně budu externě učit na SPŠE.
Mým hlavním předmětem je CIT, což je zkratka pro Číslicovou techniku. Učebna je v dost
špatném stavu, technické vybavení je zastaralé, pracoviště jsou nespolehlivá. Určitým kladem
jsou učební texty. Napsal je tak před 15 lety tehdejší učitel, ing. Milan Maršík. Jsou jistě nejlepší
učební pomůckou z odborných předmětů na SPŠE, ale pro současnou úroveň studentů jsou až
příliš dobré.
6
Bohužel návaznost předmětu CIT na předměty ostatní není dobrá, studenti druhého ročníku
nevědí, co je to polovodičová dioda nebo tranzistor a mají zapojovat logické obvody s hradly
MH7400. Většinou se to daří, většinou žáci nevědí jak a proč to tak je.
Silnoproudé zaměření studia ustupuje, slaboproudé nemá jasnou perspektivu, začínají být
preferovány obory IT (aj tý, informační technologie), o kterých většina neví nic a zbytek má
vědomosti zkreslené. Můj nadřízený, skoro soused z Bražce, mě před koncem školního roku
naznačuje, že pro příští rok se mnou počítá na plný úvazek.
Červen 2008 je ve škole odpočinkový měsíc. Čtvrté ročníky odmaturovaly, zbytek žáků i učitelů
to má „na háku“. Těším se na dva měsíce nicnedělání.
14 dní před koncem školního roku potkávám na schodech do patra kolegu Štěpána. Jen tak na
půl huby mi sděluje, že školu opouští. A že vedení školy naznačil, že „jeho“ předmět
Mikroprocesorové systémy bych mohl učit já. Vybavuje se mně úroveň učebny MPS zvané
„nudle“ kvůli úzkému dlouhému tvaru. A hlavně vidím učební pomůcky, které jsem nikdy
nespatřil zblízka a jejichž funkci jen tuším.
Deset let jsem v ECOM poskytoval technickou podporu pro ZiLOG Z8, posledních asi pět let
jsem k tomu přibral Microchip PIC16 a PIC18. Microchip se stává pomalu ale jistě světovou
jedničkou v osmibitech. PIC16 jsou v Česku velmi oblíbené především kvůli nízké ceně.
Navrhuji škole výuku PIC16 teoreticky i prakticky. Navrhuji koupit deset jednoduchých stavebnic
(kitů) přímo od Microchipu, na kterých se programuje v profesionálním vývojovém prostředí
MPLAB pod Windows do mikrořadičů s pamětí Flash. Programy běží v reálném čase a jsou
modifikovatelné během jedné až dvou minut. Učební texty ve škole nejsou a na poslední verze
mikrořadičů PIC16 se v českém jazyce sehnat nedají. Na dva měsíce „prázdnin“ mám o zábavu
postaráno.
Kit obsahuje mikrořadič PIC16F887 s pamětí Flash 8KB,
debugger / programátor a sériový kabel USB, po kterém je
mikrořadič programován, laděn a napájen.
Jednoduché programy v assembleru umožňují žákům svítit
diodami LED, převádět analogové napětí z potenciometru na
digitální hodnotu, ovládat program tlačítkem. Mikrořadiče
PIC16F887 mají jen 35 instrukcí a za dva roky výuky je dokáže
zvládnout i průměrný student. Když chce.
Do kolektivu učitelů jsem se asi vešel, jediný mám pesimistický (mírně řečeno) výraz.
7
Pro nedostatek odborných učitelů nakonec učím 29 hodin týdně. Nejsem jediný, odborní učitelé
se nehrnou. Některým se zdá učitelský plat nízký, někteří zjišťují, že učit neumějí. U některých
to zjišťuje jejich zaměstnavatel. Ještě nedávno jsem pracoval 42 hodin týdně, domů jsem se
dostával pravidelně kolem páté hodiny odpoledne, často mnohem později. 29 hodin týdně mně
připadá velmi příjemné. A mzda za tuto pracovní dobu je k důchodu vítaným přilepšením.
V září 2009 je na místo ředitele SPŠel-it vypsáno výběrové řízení, jediným přihlášeným je Ing.
Milan Maršík. Znamená to, že jeho úvazek musí být přerozdělen mezi ostatní učitele. Situaci
poněkud zachraňuje nový příchozí. Početní stav odborných učitelů je posílen.
Do nového školního roku mně bylo nabídnuto 9 hodin. Vyskakovat si nemůžu, jsem na škole
nejstarší, jediný důchodce. Předmět Mikroprocesorové systémy už neučím, jsem
neperspektivní. Moje učební texty budou používat studenti pod dohledem perspektivního
nováčka.
8
2. Co je to počítač?
Předem se omlouvám všem, kteří se chystají okamžitě „vypálit“: No přece počítač, komp,
písíčko. Také kvůli těmto odpovědím je tady tato kapitola.
Princip technického zařízení, kterému se dnes říká computer, (česky počítač), asi nejlépe
definoval Alan Turing v roce 1936. Jeho „Turing machine“ se skládá z procesoru a paměti (v
podobě nekonečné pásky) a pracuje podle programu (algoritmu).
Alan Mathison Turing, 1912–1954, britský matematik, logik,
kryptoanalytik a zakladatel moderní informatiky.
Turingovy největší vědecké zásluhy tkví v jeho článku „On Computable
Numbers, with an Application to the Entscheidungsproblem“ z roku 1936.
Zavádí v něm pojem Turingova stroje, teoretického modelu obecného
výpočetního stroje, který se stal jedním ze základů informatiky.
Za druhé světové války byl Turing jedním z nejdůležitějších vědců, kteří
luštili německé tajné kódy šifrované stroji Enigma. [Wikipedia]
Po druhé světové válce byly myšlenky Turingova stroje využity při konstrukci prvních počítačů
řízených programem uloženým ve vnitřní paměti.
První prakticky použitelný stroj vyhovující označení „computer“ byl ENIAC.
ENIAC (Electronic Numerical Integrator And Computer), historicky první, navíc turingovsky
úplný, elektronkový počítač. Jeho vývoj byl zahájen v roce 1943 v Penn State University,
dokončen byl v roce 1946 a pracoval až do roku 1955 pro americkou armádu při vývoji
jaderných zbraní.
ENIAC obsahoval 17 468 elektronek, 7200
diod, 1500 relé, 70 000 rezistorů, 10 000
kondenzátorů, okolo 5 miliónů ručně
pájených spojů, vážil 30 tun, zabíral 63 m3
(2,6 m × 0,9 m × 26 m), elektrický příkon
byl 150 kW. Byl programován pomocí
přepínačů, doba programování se měřila ve
dnech. Vstup i výstup obstarávaly děrné
štítky, Používal desítkovou soustavu, při
práci s desetimístnými čísly prováděl 357
násobení nebo 35 dělení za sekundu.
[Wikipedia]
Prvním počítačem v Československu byl stroj SAPO (samočinný počítač). Pracoval v letech
1958-1960. Počítač obsahoval celkem 7000 relé a 380 elektronek. Výpočetní rychlost byla cca
3 operace za sekundu. Vstupním / výstupním zařízením byla čtečka / děrovačka děrných štítků.
Operační paměť byla tvořena magnetickým bubnem, její kapacita byla 1024 slov o délce 32
bitů, celkem tedy 4 kB. [Wikipedia]
Odpověď: Computer (počítač) je jakékoliv technické zařízení, obsahující procesor a paměť a
vykonávající program, bez ohledu na to, z jakých dílů a součástek je sestaven.
9
3. Co je to osobní počítač?
Teď budu k odpovědím typu: „No přece pí sí“ shovívavější.
Osobní počítač (anglicky personal computer, zkratka PC, je označení pro počítač, určený pro
použití jednotlivcem na rozdíl od dřívějších sálových počítačů.
Pojem byl používán již v průběhu 70. let 20. století, kdy společnost Apple a řada dalších uvedly
první osmibitové osobní počítače na trh. Je ale obecně velmi málo známo, že systémy
technologicky velmi podobné tehdejším prvním osobním počítačům Apple již tehdy vyráběly i
jiné společnosti, kupř. společnost Hewlett-Packard či Texas Instrument a další.
Ale teprve s uvedením počítače IBM PC (IBM 5150) na trh
v srpnu 1981 se ustálilo označení PC (nebo Personal
computer) pro počítač s procesorem Intel x86.
První model IBM PC byl dodáván s procesorem Intel 8086,
pracujícím na frekvenci 4,77 MHz a s operační pamětí RAM
o velikosti 16 nebo 64 kB. Pro záznam dat se používal
kazetový magnetofon, později též osmipalcová standardní
disketa.
[Wikipedia]
Během několika let se objevila řada vylepšení a také mnoho obdobných a navazujících výrobků
jiných firem, označovaných jako kompatibilní počítače. V roce 1983 začaly být dodávány první
pevné disky o kapacitě 10 MB, v roce 1986 první modely s procesorem 80286 (16bitová
sběrnice, adresovatelná RAM až 16 MB) a v roce 1989 s procesorem 80386.
V Československu byly osobní počítače drahou
vzácností. Nevraživost státu k výpočetní technice
dosahovala značných rozměrů. Byl publikován (v
Černé kronice) případ ochotného automechanika,
který pomohl opravit píchlou pneumatiku jakémusi
„západnímu“ Němci a dostal za to počítač
Commodore v ceně cca 100 DM. Počítač mu byl
zabaven
a
automechanik
byl
odsouzen
k podmíněnému trestu odnětí svobody za
neohlášený dar od cizince.
Státní podniky musely nakupovat výpočetní techniku přes podniky zahraničního obchodu. Cena
počítače „386“ se pohybovala kolem 100 000 Kčs. Československo vyhlásilo „Projekt 2000“,
kterým byla vypsána soutěž o 2000 osobních počítačů (celostátně). Kromě značné finanční
částky bylo nutné prokázat projektem, k čemu budou PC využívány. Projekty byly vesměs tzv.
Potěmkinovy vesnice. MEZ Náchod měl jakési obchodní styky s JZD Slušovice, které s cizinou
mohlo obchodovat přímo, a získal nějaké PC s pomocí „barterového obchodu“ (tj. zboží za
zboží) výměnou za axiální ventilátory.
Soukromá osoba osobní počítač běžně vlastnit nemohla. Podobně jako nákladní automobil,
obráběcí stroj, činžovní dům, obecně výrobní prostředek. Vědomosti o vlastnostech a použití
osobních počítačů byly téměř nulové, převládal názor: „Počítače jen přidělávají práci“. V mnoha
případech to byla pravda. To co zkušený účetní nebo skladník dokázal udělat za pět minut,
musel technik dva dny zpracovávat, počkat na volný strojový čas, zadat do počítače, 2 dny
vyhodnocovat. Jako každá nová věc vítězily počítače jen pomalu.
10
V roce 1979 získal MEZ Náchod po dlouhém škemrání na generálním ředitelství v Praze
„Desktop Computer“ HP-9835.
Monochromatický (zelený) monitor 24ř x 60 zn, bez grafiky.
Paměť RAM 64KB, rezidentní BASIC. Kazetopásková paměť
(slot vlevo pod obrazovkou) pro programy. Přístup
k programům na kazetě z příkazového řádku jménem
programu (tak jako to dělal operační systém MS-DOS).
Cena samotného počítače 9900 USD.
K počítači je dodán grafický souřadnicový zapisovač (plotter) a
děrovačka děrné pásky. Výsledkem je velmi výkonný (na
tehdejší dobu) výpočetní systém.
MEZ
Náchod
vyrábí
axiální
ventilátory MEZAXIAL, jejichž důležitou součástí je vrtule. Listy vrtule
mají aerodynamický profil pro zajištění vzdušného výkonu ventilátoru
(m3/hod) a dodržení hlučnosti. Výsledek se spočítat nedá, a proto se
ověřuje na prototypu vrtule. Ten vyrábí „technik“ vystřihováním
profilů z papíru a lepením do tvaru listu. Výroba jednoho listu vrtule
trvá cca 1 měsíc.
Nástrojárna MEZ Náchod vlastní nový švýcarský NC obráběcí stroj, konkrétně frézku MAHO,
která je řízená děrnou páskou. Ideální šance pro výrobu vrtule. Šéfové konstrukce ani
nástrojárny nejsou tomuto nápadu nakloněni, ani jeden z nich nemá tušení, co umí takový NC
stroj a stolní počítač, když spojí své síly. Síly musí spojit proti vůli šéfů i jeden konstruktér a
jeden programátor MAHO (v roce 2014 technický ředitel MEZu). Pro počítač je třeba
algoritmizovat výpočet aerodynamického profilu, spočítat dráhu nástroje (frézy), napsat
program, vyděrovat data a přenést na frézu. Soutěž „kdo dříve“ vyhrává u prvního prototypu
papírový model. Asi o 3 dny. Další papírový model spatří světlo světa za 1 měsíc. NC stroj a
počítač vyrobí druhý prototyp (a každý další) s jinými parametry vrtule za 8 hodin!
Osobní počítače skutečně pro osobní použití přivedl do Československa až „podnikatel“ Ing.
Pavel Tykač v roce 1994 při druhé vlně privatizace. Za kupónovou knížku v ceně 1000 Kčs
nabídnul osobní počítač „486“ s barevnou obrazovkou, s pevným diskem 20MB, bez
operačního systému (jen s BIOS) na leasing za cca 35 000 Kč. Při všeobecném hladu po
osobních počítačích velmi šikovný tah. Po ukončení leasingu prodejny, které leasing
poskytovaly (v Náchodě na Kamenici), během dvou dnů zmizely.
Ing. Pavel Tykač je jedním z kontroverzních českých oligarchů. Jeho majetek se odhaduje na
33 miliard Kč, což z něj činí čtvrtého nejbohatšího Čecha (žebříček časopisu Forbes 2014).
Jeho bohatství se zakládá na sporných finančních transakcích v průběhu privatizace českého
národního hospodářství v devadesátých letech dvacátého století. [Wikipedia]
Odpověď: Osobní počítač je počítač pro používání jednou osobou. V roce 2004 slouží
především k hraní her diskutabilní hodnoty, k zpřístupnění pornografie mladistvým, k finančním
podvodům na Internetu a občas i k nějaké užitečné činnosti, např. ladění aplikací pro
mikrořadiče PIC16F. Pojmenování „mikropočítač“ je nepřesné až chybné!
11
4. Co je to mikropočítač?
Odpověď na tuhle otázku možná nebude úplně jednoznačná, ostatně jako u mnoha
pojmenování a názvů, začínajících bombasticky, např. mini(sukně), super(man), hyper(nova).
Význam těchto slov se s časem mění, někdy dost významně.
V československých školách dosáhl po roce 1980 určitě
největší popularity mikropočítač PMI-80.
Na desce plošných spojů o rozměrech 240 x 145 mm je
umístěn kompletní počítač založený na mikroprocesoru
8080A. Procesor pracuje s taktem 1,11 MHz. Pevnou
paměť zastupuje obvod 8608 (PROM programovaná
výrobcem) o kapacitě 1KB. Zde je umístěn obslužný
monitor (jako dnes operační systém). Paměť RAM tvoří
dva obvody 2114 (á 1024x4 bity, dohromady 1 KB).
PMI-80 sloužil k výuce programování v assembleru a
strojovém kódu a k výuce mikroprocesorové techniky
vůbec.
Z pohledu v roce 2014 názvu mikropočítač určitě dobře vyhovuje Raspberry Pi.
Základem Raspberry Pi je čip ARM 112835 firmy Broadcom
Model B má 512MB RAM, dva USB porty a ethernet port,
taktovací kmitočet je 700 MHz.
Samotný Raspberry Pi o rozměrech 68x30mm není
kompletním počítačem, musí být přidán napájecí zdroj, pro
zavedení operačního systému a trvalé uchování dat slouží
SD karta.
Odpověď: Mikropočítač je technické zařízení (velmi) malých rozměrů s vlastnostmi počítače.
Elektronika je zkonstruována z integrovaných obvodů s vysokým počtem součástek na jednom
obvodu (čipu).
12
5. Co je to procesor?
Ještě jednou musím přibrzdit nedočkavé odpovědi typu: No přeci Intel Xeon X5680 Six Core
nebo AMD FX-6300 nebo … Ano, pro ty, kteří tomu nechtějí rozumět, je to správná odpověď.
Už Alan Turing v roce 1936 a později celý realizační tým počítače ENIAC v roce 1944 věděl, že
procesor (Central Processing Unit, CPU) je základní částí počítače. Věděli to ostatně i
konstruktéři počítače Minsk-22, který byl po roce 1965 nejrozšířenějším (asi 60 kusů) počítačem
v Československu. Minsk-22 byl tranzistorový počítač, byl vybaven vnější magnetopáskovou
pamětí (na obrázku vpravo), „zbytek“ počítače (na obrázku vlevo) je procesor.
Asi nejjednodušší a přesto úplné schéma počítače může být nakresleno takto:
Počítač má jen dvě části propojené sběrnicemi:
- Procesor (Central Processing Unit, CPU)
- Paměť
Přídavná zařízení (periferie, vstupní a výstupní obvody) potřebuje „jen“ pro příjem dat a výstup
výsledků a pro komunikaci s obsluhou.
V minulosti byl procesor realizován na jedné nebo spíše více deskách plošných spojů. V
současné době jde většinou o velmi složitý integrovaný obvod.
13
Procesor (CPU) se dále skládá ze dvou částí:
- Arithmetic / Logic Unit, ALU, aritmeticko logická jednotka
- Control Unit, řící jednotka, řadič
Úplné schéma počítače pak může být nakresleno takto:
Odpověď: Procesor (CPU, Central Processing Unit) je základní součást počítače, která
vykonává jednotlivé strojové instrukce, ze kterých je složen počítačový program umístěný v té
chvíli v operační paměti počítače.
14
6. Co je to ALU?
Aritmetic / Logic Unit (Aritmeticko – logická jednotka) je jedna ze základních komponent
procesoru (tou druhou je řadič), ve které se provádějí všechny aritmetické (např. sčítání,
násobení) a logické (logický součin, negace) výpočty.
ALU je kombinační logický obvod, který má vstupy pro data (OPERAND1, OPERAND2), vstup
pro instrukci (INSTRUCTION), výstup výsledku (ACCUMULATOR) a výstup příznaků (FLAGS).
Na ALU je připojeno několik registrů pro urychlení činnosti ALU.
Operandy jsou obvykle vybírány z paměti pro data (RAM) a bývají tam zase ukládány. Jedním
z operandů (na obrázku OPERAND1) může být výsledek předchozí operace a je vybrán
z registru výsledku (ACCUMULATOR, střadač). V registru ACCUMULATOR je uložena číselná
hodnota výsledku, v registru FLAGS (příznaky) jsou nastaveny příznaky pro nulový výsledek (Z,
Zero), pro přeplnění výsledku (C, Carry), pro znaménko výsledku (S, Signum) a další.
Typ operace (součet, logický AND, bitový posuv, . . .) je určen kódem instrukce, která je
vybírána z paměti pro program, dekódována v dekodéru instrukce a uložena v registru instrukce
(INSTRUCTION). Pro osmibitovou ALU jsou všechny operandy a registry osmibitové, příznaky
jsou jednobitové a může jich být až osm.
15
ALU je obvod, který určuje výpočetní a logické schopnosti procesoru. Je to obvod složitý?
Zkusme, kvůli většímu pochopení funkce, navrhnout jednobitovou ALU podle obrázku.
Vstupy X a Y jsou jednobitové operandy.
IN je jednobitová instrukce, má hodnotu 0 nebo 1
A je jednobitový výsledek, jehož hodnota je:
A=X AND Y když IN=1
A= X OR Y když IN=0
Sestavíme pravdivostní tabulku funkce A a zapíšeme přímo do Karnaughovy mapy.
Tady jen pro úplnost (nesouvisí to s ALU):
Vodorovný (svislý) pruh nad mapou (vedle mapy) znamená,
že proměnná v označených sloupcích (řádcích) PLATÍ = 1 !!
Pokusy o dohodu o opačné interpretaci je nutné odmítnout.
Na pozemních komunikacích se jezdí vpravo. Dohodnout
se jen s někým o tom, že se jezdí vlevo, je trestuhodné.
Po minimalizaci je možné napsat funkci A ve standardním tvaru jako:
A nakreslit schéma jednobitové ALU:
Zdá se tohle někomu zbytečné snažení?
Tak především je možné pochopit, že ALU je obvod složitý, ale
jeho činnost až tak složitá není.
Od roku 1973 vyráběl INTEL tzv. řezový procesor I3000.
Dvoubitovou ALU pak vyráběl n.p. TESLA jako MH3002
Osmibitová ALU se musela složit ze čtyř zobrazených integrovaných obvodů. Instrukce byla
sedmibitová, maximální kmitočet byl 6 MHz.
Odpověď: ALU je jedna ze dvou částí procesoru (druhou částí je řadič). ALU vykonává
aritmetické a logické operace s jedním nebo více operandy (dvojková čísla). Operandy mohou
být vyzvednuty z paměti RAM nebo jsou součástí instrukce. Druh operace je určen instrukcí,
která je vyzvednuta z paměti pro program. Výsledek operace je uložen do střadače
(Accumulator). Počet instrukcí je určen konstrukcí ALU a tvoří tzv. Instrukční soubor. Poněkud
zjednodušeně si je možné představit, že instrukční soubor je pravdivostní tabulka ALU
16
7. Co je to řadič?
Hrozí nám změť jazyků jako v Babylonu. Slovo Controller, případně Control Unit může mít více
významů. Například Remote Controller (dálkový ovladač, např infračervený ovladač televizního
přijímače) nebo Programable Logic Controller (programovatelný automat). Je potřeba rozumět
funkci, nikoliv slovu.
A protože směřujeme k podrobnějšímu povídání o mikrořadičích PIC16 řekněme rovnou, že
mikrořadič není malý řadič.
Upřesněme tedy naši otázku: Co je to řadič jako jeden ze dvou dílů procesoru?
Řadič (Control Unit) je jednou ze dvou částí procesoru (CPU, Central Processing Unit). Je to
sekvenční logický obvod, který řídí všechnu činnost procesoru, tedy postup výpočtů v ALU,
komunikaci s pamětí počítače a s periferiemi, zjednodušeně řečeno, řídí vykonávání programu.
Na obrázku je velmi zjednodušené schéma procesoru PIC16. Je doplněné o paměť, která je
nutná pro pochopení funkce řadiče. Nejsou uvedeny obvody pro nepřímé adresování, obvody
přerušení ani většina pomocných propojení.
Memory jsou paměti. V této kapitole se o nich jedná, jen pokud s nimi procesor spolupracuje.
ALU je aritmeticko logická jednotka, popsaná v kapitole 6.
V PIC16 se místo názvu Accumulator (střadač) používá název Working Register.
Podobně místo obvyklého názvu Flags (registr příznaků) je uveden název STATUS, protože
ALU PIC16 generuje jen 3 příznaky a osmibitový registr STATUS má více funkcí.
Control Unit (řadič) je to ostatní
Jak je vidět, nikde ve schématu se nevyskytuje slovo Control Unit (řadič) ani anglicky ani česky.
Pokud však je od studentů vyžadována odpověď, že řadič není zakreslen, je to nepochopení
funkce řadiče a celého PIC16.
17
Řadič (Control Unit) obsahuje především:
Timing Generation (taktovací obvody, zjednodušeně oscilátor). Celý procesor je sekvenční
obvod, je řízen taktovacím signálem (hodinový signál, Clock, CLK). Taktovací signál u malých
procesorů je dnes v řádu MHz až desítek MHz, u procesorů osobních počítačů jsou to GHz.
V jedné periodě taktovacího signálu (pro 1MHz je to 1s) vykoná procesor určitou činnost
(přečte instrukci, vloží operand na vstup ALU, . . .). Jednu určitou instrukci vykoná některý
procesor za 1 takt, jiný (PIC16) za 4 takty.
Program Counter (čítač programu, PC) je čítač vpřed, který je při spuštění procesoru
(signálem Reset) vynulován. Po vykonání jedné instrukce s délkou 1 Byte je obsah čítače
programu zvýšen o jedničku (inkrementován). U instrukcí s více Byty je obsah čítače programu
zvýšen o délku instrukce. Čítač programu obsahuje adresu instrukce (pořadové číslo registru
v paměti programu), která bude vykonána v příštím taktu. Počet bitů čítače programu musí být
takový, aby čítač mohl adresovat celou paměť pro program. Pro paměť o velikosti 8kB (tj. 213)
musí být čítač nejméně třináctibitový. Při skocích v programu nebo volání podprogramu je
obsah čítače programu přímo nastaven operandem instrukce.
Instruction Register (registr instrukce) je registr, ve kterém je uložena právě vykonávaná
instrukce. Instrukce je do registru zapsána z adresy, na kterou „ukazuje“ čítač programu.
Instruction Decode (dekodér instrukce) přečte kód instrukce, vyčte z kódu počet a druh
operandů a vygeneruje signály pro ALU (kód instrukce, přímý operand), pro paměť RAM
(přímou adresu operandu) nebo pro čítač programu (adresu skoku v programu). Instrukce
může mít 1 Byte (8 bitů) nebo více Bytů. Jednotlivé Byty jsou do registru instrukce ukládány
sekvenčně (Byte po Bytu).
Reset (nastavení výchozího definovaného stavu procesoru). Signál Reset může být vyvolán
řadou událostí, především připojením napájecího napětí, poklesem napájecího napětí pod
určenou mez, nežádoucím stavem procesoru, vnějším signálem na pinu Reset.
Odpověď: Řadič procesoru je jeden ze dvou obvodů (druhým je ALU), který řídí všechnu
činnost procesoru jako časovou posloupnost, zejména
- adresování instrukce v paměti pro program (čítač programu)
- načtení instrukce z paměti pro program (registr instrukce)
- dekódování instrukce (dekodér instrukce)
- vydání operačního kódu pro ALU (dekodér instrukce)
- načtení příslušných operandů (obvykle obsah adresy v paměti RAM) a předání do ALU
- uložení výsledku z ALU na požadované místo v paměti
18
8. Co je to mikroprocesor?
Když už jsme si v kapitole 5 přečetli co je to procesor tak je odpověď jednoduchá.
Mikroprocesor, také P, je integrovaný obvod, který v jediném malém pouzdře plní funkci
procesoru.
Prvním obchodně úspěšným mikroprocesorem byl 4-bitový mikroprocesor Intel 4004, který byl
uveden na trh v roce 1971.
výrobní technologie PMOS 10m, obsahoval 2300 tranzistorů
taktovací frekvence 750 kHz
45 instrukcí
výpočetní výkon 0,07 MIPS
pouzdro DIP16
V roce 2014 má sběratelskou cenu 200 až 400 USD
V roce 1974 byl dán na trh 8-bitový mikroprocesor Intel 8080
výrobní technologie NMOS 4.5m, obsahoval 4500 tranzistorů
taktovací frekvence 2 MHz
výpočetní výkon 0,64 MIPS
pouzdro DIP40
Klony 8080 vyráběly firmy AMD, Siemens, Texas Instruments, v Sovětském svazu byl
vyráběn pod označením K580IK80, v Československu jako MHB8080A
Na konstrukci všech mikroprocesorů Intel se výrazně podílel Federico
Faggin (narozen 1941). Na konci roku 1974 Faggin od Intelu odešel
(prý proto, že Intel nevěřil na budoucnost mikroprocesorů a dával
přednost vývoji a výrobě pamětí) a založil společnost Zilog. „Odměnou“
mu bylo vymazání všech informací o něm z historie firmy Intel.
Zilog byla první společnost, zaměřená jen na vývoj a výrobu
mikroprocesorů. Faggin byl presidentem společnosti až do roku 1980.
Zilog Z80 je osmibitový mikroprocesor, navržený firmou Zilog a prodávaný od července 1976 a
byl ve velkých sériích vyráběn ještě v roce 2009. Byl široce používán jak ve stolních počítačích
tak pro armádní účely. Z80 a jeho klony tvoří jednu z nejvíce používaných CPU sérií všech dob
a společně se sérií Texas Instruments 6502 dominoval trhu s osmibitovými počítači od začátku
70. let až do poloviny 80. let 20. století.
výrobní technologie NMOS
taktovací frekvence 6 MHz až 20 MHz
252 instrukcí
výpočetní výkon 2 MIPS
pouzdro DIP40
Zilog licencoval design Z80 několika dodavatelům (SGS, Sharp, Toshiba) a mnoho
východoevropských a ruských výrobců vyrábělo nelicencované kopie (v NDR to byl U880D
v počítačích Robotron). V Československu byly na základě Z80 vyráběny počítače Ondra
a Didaktik.
19
Zilog Z80 byl klasický 8-bitový mikroprocesor se sadou osmibitových (nebo ve dvojicích 16bitových) registrů, z nichž nejdůležitější funkci mají
A
Accumulator, střadač, 8 bitů
F
Flags, registr příznaků, 8 bitů
PC
Program Counter, čítač programu, 16 bitů, může adresovat až 64 KB paměti
SP
Stack Pointer, ukazatel zásobníku, 16 bitů, zásobník v paměti, SP ukazuje na jeho vrchol
Instrukce jsou jedno až tříbytové, pro kód instrukce je určen celý Byte. Instrukční soubor může
proto mít až 256 instrukcí, skutečně použito bylo 252 kódů. Mezi obdivovateli Z80 se pořádaly
soutěže, kdo zjistí, jakou činnost provádějí čtyři oficiálně neobsazené kódy.
Největším současným výrobcem mikroprocesorů je Intel. Jeho výrobky jsou studentům SPŠel-it
jistě známější, např.
výrobní technologie CMOS 22 nm
cca 800 000 000 tranzistorů
taktovací frekvence až 4 GHz
výpočetní výkon 40 GFLOPS
pouzdro 35 x 32 x 1.6 mm LGA1366 pinů
ztrátový výkon (TDP) až 88 W
Odpověď: MikroprocesorP, je integrovaný obvod, který v jediném malém pouzdře plní funkci
procesoru.
20
9. Co je to mikrořadič?
Když už jsme si v kapitole 6 přečetli co je to řadič, tak by odpověď mohla být jednoduchá.
Mikrořadič, také C (microcontroller), je integrovaný obvod, který v jediném malém pouzdře
plní funkci řadiče.
Ale:
Výrobci čipů již několik let po uvedení prvních mikroprocesorů pokračovali ve zmenšování čipů
a současně i zvyšování jejich integrace a složitosti, což nakonec vyústilo v takzvaný
„mikropočítač na čipu“, což je poněkud nepřesné označení jediného integrovaného obvodu,
který spolu s mikroprocesorem (tj. ALU, řadič a registry) obsahoval i paměť ROM, paměť RAM
a další přídavné obvody. Tyto integrované obvody se podle svého nejčastějšího použití začaly
označovat názvem mikrořadiče.
Prvním čipem, který je možné označit termínem
mikrořadič, je obvod TMS 1000 firmy Texas
Instruments z roku 1974. Byl založen na čtyřbitové
centrální procesorové jednotce (CPU) s pouhými
12 instrukcemi, obsahoval na jednom čipu operační
paměť o kapacitě 128 nibblů (nibble je čtveřice bitů),
paměť programu (ROM) o maximální kapacitě
2048 Bytů. [Wikipedia]
Na SPŠE Dobruška byl dlouhá léta v předmětu MPS
vyučován mikrořadič Intel 8051, osmibitový mikropočítač
Harvardské architektury, který byl vyvinut v roce 1980 pro
použití v oblasti vestavěných (embedded) systémů.
Programy byly psány v assembleru, laděny na
simulátorech a programovány do „windowed“ pamětí
EPROM.
Původní verze dnes byla z velké části nahrazena celou řadu rychlejších a funkčně posílených
8051 - kompatibilních obvodů, vyráběných více než 20 nezávislými výrobci, včetně Atmel,
Infineon Technologies (dříve Siemens AG), NXP (dříve Philips), ST Microelectronics, Texas
Instruments.
V současnosti je vyučován mikrořadič Atmel AT89C2051 který je kompatibilní se standardem
MCS-51.
Parametry mikrořadiče:
paměť Flash
2 kB
paměť RAM
128 B
čítače
2 x 16 bitů
vstupy/výstupy
15
sériový kanál
UART
max.frekvence
24 MHz
instrukční soubor MCS-51 CISC
pouzdro
DIL 20
cena v ČR
cca 28 Kč
Výhodou všech mikrořadičů s jádrem 8051 je jejich vzájemná kompatibilita, optimální cena a
solidní sortiment periferních obvodů na čipu.
21
Po přechodnou dobu byl na SPŠE Dobruška vyučován mikrořadič ZiLOG Z8, uvedený na trh
1979. Řada ZiLOG Z8 má unikátní architekturu, všechny registry z paměti RAM mohou být
použity jako akumulátor, což urychluje chod programu. Hlavním důvodem výuky byla možnost
ladění programu na emulátoru, což v té době (1999-2002) byla v osmibitech dost vzácnost.
Později v roce 2004 byla řada Z8 vylepšena o řadu Z8Encore s pamětí Flash.
Mikrořadič Z86E08 měl parametry:
paměť PROM
2 kB
paměť RAM
128 B
čítače
2 x 8 bitů
vstupy/výstupy
14
sériový kanál
-max.frekvence
12 MHz
instrukční soubor 256 CISC
pouzdro
DIL 18
Od roku 2008 jsou na SPŠel-it Dobruška vyučovány mikrořadiče Microchip PIC16, které jsou
vyráběny s pamětí PROM (PIC16C) a později s pamětí Flash (PIC16F). Výhodou mikrořadičů
PIC je velmi široký sortiment periferních obvodů (čítače, AD převodníky, sériové komunikační
kanály) a jednoduchý instrukční soubor (35 instrukcí), který umožňuje, aby každá instrukce
měla konstantní délku (14 bitů) a byla vykonatelná v jednom instrukčním cyklu.
Mikrořadič PIC16F887 má parametry:
paměť Flash
8 k x 14bit
paměť RAM
368 B
čítače
2 x 8 bitů + 1x 16 bitů
vstupy/výstupy
35
sériový kanál
USART, I2C, SPI
max.frekvence
8 MHz
instrukční soubor 35 instrukcí RISC
pouzdro
DIL 40, TQFP 44
Odpověď: MikrořadičC (microcontroller), také jednočip je integrovaný obvod, který v jednom
pouzdře obsahuje všechny části mikropočítače (tj. mikroprocesor, paměť pro program, paměť
pro data, vstupní / výstupní porty, AD převodník, čítače / časovače, sériové komunikační
kanály, oscilátor). Je obvykle postaven na architektuře Harvard a je většinou určen pro
průmyslové aplikace.
22
10. Co je to architektura mikrořadiče
V červnu roku 1945 uspořádal John von Neumann přednášku věnovanou návrhu počítacího
stroje EDVAC, ve které navrhl uspořádání podle obrázku s jedním paměťovým prostorem.
V paměti je uložen program, data i zásobník, přidělení paměti určuje konfigurace procesoru.
Procesor může v jeden čas přenášet buď jenom instrukce z části paměti přidělené programu,
nebo data z části paměti pro data.
Výhodou architektury von Neumann je lineární uspořádání paměti, nevýhodou je možnost
přepsání programu nebo zásobníku daty.
Z osmibitových mikrořadičů je na architektuře von Neuman postaven Zilog Z180 a Motorola
(dnes Freescale) HC08.
V roce 1944 byl pro universitu Harvard postaven počítač Mark I, který měl dvojí paměť, jednu
pro program a druhou pro data. To umožňuje paralelní přístup k oběma pamětem a zvyšuje
rychlost zpracování. Výhoda rozdělené paměti spočívá v možnosti použití různých typů pamětí,
RAM pro data, PROM (dnes Flash) pro program. Je také možné použít různou bitovou šířku,
např. 8 bitů pro data a 12 bitů pro instrukce. Tím je možno do více bitů instrukce umístit celou
instrukci, tj. kód instrukce i všechny operandy, každá instrukce pak může být vykonána
v jednom strojovém cyklu.
Architekturu Harvard používají převážně malé jednoúčelové mikrořadiče, především řada Intel
8051, všechny řady PIC od firmy Microchip, ZiLOG Z8 a eZ8, AVR společnosti Atmel.
Paměť pro program je obvykle větší, na našem obrázku 64K slov a adresy generuje čítač
programu. Paměť RAM má často jen 256B, protože adresy jsou součástí instrukce, která má
omezenou délku.
Odpověď: Architektura mikrořadiče je obvodové (hardwarové) řešení procesoru, které určuje
jeho zásadní vlastnosti a vzájemnou komunikaci bloků mikrořadiče. Dvě základní architektury
používané v roce 2014 jsou von Neumann a Harvard.
23
11. Co je to instrukční soubor
Instrukční soubor je určen konstrukcí ALU a vymezuje výpočetní a logické schopnosti procesoru
a celého mikrořadiče.
Mikrořadiče s klasickou osmibitovou strukturou využívají celý jeden Byte pro instrukční kód. Na
osmi bitech je možné vytvořit 28 = 256 instrukcí. Procesory s takovým instrukčním souborem
dostaly název CISC (Complex Instruction Set Computers).
Na obrázku je instrukční soubor mikrořadiče Zilog eZ8. První Byte obsahuje 247 instrukcí z 256
možných. Kód 1Fh je tzv. Escape (únikový) kód a vlastní kód instrukce obsahuje až druhý Byte.
Tím má instrukční soubor 259 instrukcí. Instrukce mají různou délku (tady 1Byte až 4 Byte)
různou dobu vykonání (tady 2 až 9 strojových cyklů).
Každé z 256 polí obsahuje mnemonický název instrukce, (např INC pro kód 20h), symboly
jednoho nebo dvou operandů (spodní řádek) a počet strojových cyklů pro natažení instrukce do
registru instrukce a počet cyklů pro vykonání instrukce (horní řádek).
Z obrázku a popisu by mělo být zřejmé, že instrukční soubor CISC je mocný nástroj
programátora, může to však být nepřítel studentů i některého pedagoga.
24
Obdobně má Atmel AT89C2051 úplný instrukční soubor kompatibilní se standardem MCS-51,
který obsahuje 256 instrukcí o délce 1 až 3 Byte. Většina instrukcí je vykonána ve 12 taktech (tj.
ve 12 periodách taktovacího kmitočtu oscilátoru). Nejvíce času vyžadují instrukce pro násobení
MUL a dělení DIV (48 taktů), přestože mají délku 1 Byte.
Instrukční soubory různých mikrořadičů, pokud nevycházejí z kompatibilních jader jako je 8051,
nejsou vzájemně podobné, programy na úrovni strojových kódů jsou nepřenositelné. Rovněž
tak mnemonika assembleru je většinou různá. Například standard MCS-51 používá pro
nejčastější instrukce přesunu dat mezi registry zkratku MOV (move), zatímco Zilog používá LD
(load). Triviální instrukce jako NOP (no operation, nedělej nic) mívají mnemoniku shodnou.
Bonus: Co je to mnemonika
Protože lidská paměť uloží logické a související informace a proto kompletní slova v některém
jazyce snáze než čísla, využívají proto některé metody záměnu číslic za slova, která se
pamatují velmi snadno. Určitě je lehčí si pomatovat zkratku INC (increment) než kód 06.
Chceš si zapamatovat číslo na 20 desetinných míst? Pamatuj si větu: „Motor, tesák nebo
směs háků v kameném hrobě“ (Pitomost co? O to líp se pamatuje!).
Každá souhláska je číslice podle kódu t=1, n=2, m=3, r=4, s=5, b=6, v=7, h=8, k=9 (písmena
mají nějakou grafickou podobu s číslicemi) a pak  = 3,14159265358979323846 . . . .
Jo, je to celkem k ničemu, když tak vyhrát sázku o jedno pivo „-)
Už někdy kolem roku 1970 se ukázalo, že většina programů prováděných na tehdejších
počítačích využívala pouze malou část (jen asi 30 %) ze všech dostupných strojových instrukcí
procesoru. Bylo tomu tak proto, že tehdejší překladače nedokázaly efektivněji využít všechny
instrukce. Započalo se proto s návrhem jednoduchých procesorů s instrukční sadou, ve které
pro každou operaci existuje v procesoru jen jediná instrukce.
Procesory s jednoduchou, vysoce optimalizovanou sadou strojových instrukcí, se označují RISC
(Reduced Instruction Set Computing). Tyto procesory jsou charakteristické svojí malou
kapacitou pamětí, ale těží z toho, že většina instrukcí může být vykonána během jednoho
strojového cyklu.
Mezi zástupce RISC procesorů patří Atmel AVR a především všechny řady PIC firmy Microchip.
Mikrořadiče Microchip PIC16F mají jen 35 instrukcí. Instrukce mají konstantní délku 14 bitů a
většina je vykonána v jednom strojovém cyklu, který je složen ze čtyř taktů hodinového
kmitočtu. Instrukce pro podmíněný skok a instrukce, které mění obsah čítače programu, jsou
vykonány ve dvou cyklech.
Každá instrukce obsahuje kód instrukce a až dva operandy.
O instrukčním souboru řady PIC16 je dále řeč v kapitole X.
Odpověď: Instrukční soubor je množina binárních kódů operací, které dokáže ALU procesoru
vyhodnotit, zpracovat výsledek a nastavit příznaky výsledku. Dvě odlišné skupiny instrukcí jsou
CISC (kompletní sada instrukcí) a RISC (redukovaná sada instrukcí).
25
12. Co je to instrukce
Myslíme tím samozřejmě instrukci procesoru mikrořadiče. Tak jako člověk se naučí slova
určitého jazyka a jejich význam a ze slov sestavuje věty, tak mikrořadič umí jednotlivé instrukce,
z nichž programátor sestaví program.
Tak jako slova určitého jazyka jsou dána historickým vývojem jazyka, tak jsou instrukce
procesoru dány konstrukcí především ALU (aritmeticko-logické jednotky).
Instrukce musí být procesoru dodána jako binární číslo (strojový kód), jiné formě procesor
nerozumí!!
Instrukce, aby plnila účel, musí mít určitou strukturu a obsahuje:
Kód instrukce.
Je to kombinace binárních číslic, která říká ALU, co má dělat (přičítat jedničku, sčítat, logicky
ORovat, přesouvat obsah z registru do registru). V jazyce Assembler to je například:
INC inkrement, kód pro přičtení jedničky
OR operace OR dvou binárních čísel
MOV přesun obsahu registru do jiného registru
Operandy
To jsou čísla (binární), s kterými se má operace daná kódem instrukce provést.
Počet operandů v instrukci se různí podle typu instrukce a může být:
- žádný operand
Instrukce NOP (nedělej nic) nepotřebuje operand
- jeden operand
Instrukce INC A (inkrementuj obsah registru A) má jeden operand a zvětší obsah registru
s adresou A o jedničku (A+1 -> A)
- dva operandy
Instrukce MOV A, B přesune obsah registru B do registru A. A je cílový (destination)
operand, B je zdrojový (source) operand.
Operandy jsou obvykle adresy registrů v paměti RAM. Jsou to opět binární čísla, která v jazyce
assembler mohou být nahrazena definovanými symboly.
MOV Delay, Counter
; Přesune obsah registru Counter do registru Delay
Operandem může být i konstanta (přímý operand), pro kterou instrukce určí cílový operand
(adresu registru), do kterého je konstanta uložena.
MOV Delay, 05h
; uloží číslo 05h (00000101b) do registru Delay
Cílovým operandem může být i čítač programu, instrukce pak změní chod programu (program
skáče) na volání podprogramu
CALL Loop
; skáče na první instrukci podprogramu Loop
Typy instrukcí jsou dány konstrukcí ALU a instrukčním souborem. Zde jsou uvedeny jen typické
příklady, vyskytující se ve všech mikrořadičích. Detailněji o instrukcích mikrořadičů PIC16
v kapitole X.
Odpověď: Instrukce je množina údajů, která přikazuje ALU co má udělat a s čím (s jakými
daty). Posloupnost instrukcí tvoří program
26
13. Co je to taktování instrukce
Procesor je sekvenční logický obvod (sekvence = posloupnost), který svoji činnost vykonává
postupně podle taktovacích impulzů, které dostává z časovacího obvodu. Zdrojem taktovacích
impulzů (clock, hodiny, CLK) je oscilátor, jehož frekvence se u moderních mikrořadičů
pohybuje v pásmu 1 MHz až 20 MHz. Oscilátor je integrován na čipu mikrořadiče, jeho kmitočet
bývá označován Fosc.
Příklad taktování instrukce při jejím vykonání je pro mikrořadič PIC16.
Perioda oscilátoru je Q1, při kmitočtu oscilátoru Fosc=4 MHz je Q1=Q2=Q3=Q4=0.25s. Čas
Qn je pojmenován jako 1 takt. Instrukce je vykonána ve 4 taktech (dekódování instrukce,
načtení operandu, modifikace operandu, uložení výsledku). Čas Q1+Q2+Q3+Q4 je pojmenován
instrukční cyklus a při Fosc=4 MHz je instrukční cyklus roven 1 s.
V každém taktu Q1 je inkrementován čítač programu (PC) a obsahuje tak adresu instrukce,
která bude vykonána v příštím instrukčním cyklu. Tato instrukce je načtena (Fetch instruction)
do vyrovnávací paměti, která má kapacitu jedné instrukce a má název pipeline (český název
budou hledat jen nerozumní studenti).
V registru instrukce je uložena instrukce natažená v předchozím cyklu a je právě vykonávána
(Execute instruction).
Řadič PIC16 tedy současně dělá dvě činnosti:
- vykonává instrukci uloženou v registru instrukce (měla adresu n-1)
- natahuje do pipeline instrukci, uloženou na adrese n
Tím dochází k překrývání instrukčních cyklů a ke zkrácení výkonu instrukce z 8 taktů na 4 takty.
Když je vykonána instrukce skoku v programu (nepodmíněný skok, podmíněný skok, volání
podprogramu, obsluha přerušení) tak je obsah pipeline nepotřebný, musí být zahozen (anglicky
Flush) a taková instrukce pak potřebuje na vykonání 2 instrukční cykly (8 taktů).
Znalost taktování instrukcí a doby jejich vykonání při určitém Fosc je velmi důležitá při psaní
časově kritických programů. Ignorování této skutečnosti pak vede k nemožnosti napsat program
pro generování určitého časového intervalu případně zvoleného tónu (kmitočtu). Vyžadování
vzorce pro výpočet časového intervalu je neférové.
Odpověď: Taktování instrukce při jejím vykonávání procesorem je časová posloupnost činností
(dekódování instrukce, načtení operandu, modifikace operandu, uložení výsledku).
27
14. Co je to paměť programu
Počítač byl už kolem roku 1940 definován jako technické zařízení, které svoji činnost vykonává
podle programu, uloženého v paměti.
V architektuře Harvard je paměť pro program oddělená od paměti pro data.
U prvních počítačů byl program uchováván na děrných štítcích (je to vlastně paměť ROM). V
mikrořadičích byl program zapsán v polovodičové paměti na čipu. Požadavkem je, aby program
zůstal beze změny i při vypnutí napájení.
Druhy paměti pro program:
ROM Obsah je určen již při výrobě čipu pomocí masky, je vhodná pro uložení zákaznického
programu, výrobce požaduje objednání nejméně 5000 kusů, za správnost kódu ručí zákazník.
EPROM Programuje se elektrickými impulzy podle předepsaného algoritmu, obsah je možné
smazat ultrafialovým zářením (výbojkou). Používá se pro vývoj aplikací. Pouzdra jsou opatřena
okénkem z křemičitého skla, mikrořadič je několikanásobně dražší než shodný typ s pamětí
PROM. Životnost paměti EPROM je několik desítek cyklů zápis / mazání. S rozvojem pamětí
Flash paměti EPROM ztrácejí na významu.
PROM (OTP, One Time Programmable) Jednou programovatelná paměť, program ukládá
zákazník. Velké série se programují na mikrořadičích před osazením do plošného spoje,
program se vkládá paralelně (Byte po Byte) pro zkrácení času na programování. Pro menší
série jsou vhodné mikrořadiče s rozhraním ICSP (In Circuit Seriál Programming), do kterých se
program vkládá po osazení do plošného spoje po jednom vodiči bit po bitu. Po uložení
programu je možné přístup do paměti zakázat pro zabránění nechtěného smazání nebo
pirátského čtení.
Flash Způsobem programování je to EEPROM, zápis i mazání po stránkách elektrickými
impulzy, čteni po Bytech. Životnost pamětí desítky tisíc cyklů zápis / mazání, obsah je uchován
nejméně 10 let. Výhodou paměti Flash je možnost ladění programu v reálném čase na
konkrétním typu mikrořadiče, který bude použit ve finálním výrobku.
Kapacita paměti pro program se u moderních mikrořadičů pohybuje od 1KB (1024B) až po
64KB (65 536B). Kapacita paměti je svázána s délkou čítače programu a naopak. Čítač
s délkou 16 bitů může adresovat nejvíce 64KB (nebo KW) paměti.
Příklad uspořádání paměti Flash o velikosti 8KB, rozdělené do čtyř stránek (Page), každá o
velikosti 2KB. Třináctibitový čítač programu PC <12:0> adresuje celou paměť.
Na adrese 0000h, na kterou „ukazuje“ čítač programu po stavu Reset musí být uložena první
instrukce programu nebo instrukce skoku na první instrukci programu.
28
15. Co je to paměť pro data
Při běhu programu pracuje procesor s daty. Aby data byla přístupná pro čtení i pro zápis co
nejrychleji, musí být paměť pro data typu RAM. První mikroprocesory měly na čipu několik (osm
nebo 16) osmibitových registrů, s jejichž obsahem prováděly většinu operací (viz schéma
mikroprocesoru Z80 v kapitole 8. Až výsledky se ukládaly do vnější paměti RAM.
Některé z registrů měly určenou funkci - střadač A (accumulator), registr příznaků F (flags),
ukazatel zásobníku SP (stack pointer). Ostatní registry, např. B, C, D, E byly určeny pro uložení
libovolných dat.
V současných mikrořadičích s architekturou Harvard je paměť realizována jako sada
osmibitových registrů. Na obrázku je struktura paměti RAM mikrořadiče PIC16C54, která
obsahuje 32 osmibitových registrů.
Sedm registrů s adresou 00h až 06h jsou SFR (Special Funkcion
Register). Obsah těchto registrů využívá přímo procesor.
Například registr STATUS obsahuje i příznaky (Flags), registry
PORTA a PORTB jsou vstupně / výstupní programovatelné porty,
registr TMR0 je osmibitový čítač. Pro umístění jednoúčelových
registrů se používá termín mapování do paměti RAM.
Pro přístup k obsahu registru může instrukce použít buď jejich
adresu, nebo jejich název. Instrukce
inc
05
inc
PORTA
jsou shodné, zvýší obsah registru PORTA (adresa 05h) o jedničku
Většina registrů SFR je přístupná programátorovi pro čtení i zápis.
Je nutné je používat v souladu s jejich určením, jejich neuvážený
přepis může způsobit neočekávané reakce mikrořadiče.
Zbylých 25 registrů s adresami 07h až 1Fh jsou GPR (General
Purpose Register), do kterých lze zapisovat libovolná data.
Paměť RAM osmibitových mikrořadičů má velikost od 128B do 2048B. Do paměti RAM jsou
mapovány všechny registry SFR (vstupní/výstupní porty, čítače, konfigurační registry) včetně
registrů jádra (střadač, čítač programu). Paměť RAM může být rozdělena na více částí (banky),
protože RISC procesory mají v instrukcích jen omezený počet bitů pro adresu operandu.
29
16. Co je to zásobník
Chod programu se řídí obsahem čítače programu, jehož obsah ukazuje na adresu v paměti
programu, ze které bude vykonána následující instrukce.
Při lineárním chodu programu je obsah čítače inkrementován (zvětšen o jednu) po vykonání
každé instrukce (přesněji po přečtení obsahu adresy v paměti programu).
Většina programů obsahuje podprogramy, které jsou v paměti pro program ukládány mimo
hlavní program a jsou z hlavního programu „volány“ počáteční adresou podprogramu. Po
ukončení podprogramu musí program pokračovat od adresy, která byla v čítači programu před
voláním podprogramu. Aby program věděl, kde má pokračovat, musí být návratová adresa
někde uložena. K uložení návratové adresy se používá speciální druh paměti – zásobník
(stack).
Zásobník je paměť R/W (Read/Write) typu LIFO (Last In First Out).
Na obrázku je v paměti programu na adrese 003Ah uložena instrukce call pro volání
podprogramu. Čítač programu (PC) v okamžiku vykonání instrukce obsahuje adresu příští
instrukce, kterou je návratová adresa 004Ah. Ta je uložena na vrchol zásobníku. Po vykonání
podprogramu instrukce return vyzvedne adresu z vrcholu zásobníku a uloží ji do čítače
programu.
V mikrořadičích s architekturou RISC (např. PIC16) je zásobník realizován jako určitý počet (8
nebo 16) hardwarových registrů, které nemají adresu a nejsou součástí žádné paměti. Počet
bitů v registrech zásobníku musí být shodný s počtem bitů čítače programu. Při každém zápisu
do zásobníku se zapisuje na vrchol zásobníku, dříve uložené adresy se posunou o jednu pozici
„dolů“. Při čtení ze zásobníku se čte z vrcholu zásobníku, obsah zásobníku se posune o jednu
pozici „nahoru“. Do zásobníku může být uložena jen návratová adresa, programátor nemá
k zásobníku žádný přístup ani pro zápis ani pro čtení a obvykle nemá ani žádnou informaci
(příznak) o přeplnění zásobníku a musí počet zápisů do zásobníku pohlídat při psaní programu.
30
V mikrořadičích se standardní architekturou programátor zakládá zásobník do paměti RAM tím,
že určí některou z adres v paměti jako dno zásobníku. Zásobník je automaticky plněn instrukcí
call, do zásobníku se kromě návratové adresy zapisuje obsah střadače a obsah registru
příznaků. Zásobník roste směrem „dolů“ k nižším adresám. Příští použitá adresa je ukládána do
registru Stack Pointer (SP), který tak obsahuje vrchol zásobníku. Ze zásobníku automaticky
čte instrukce return.
Programátor má do zásobníku přístup instrukcemi push (pro zápis) a pop (pro čtení) a může do
zásobníku uložit jakákoliv data.
Založení zásobníku zapsáním adresy dna zásobníku do registru SP (Stack Pointer).
Stav zásobníku a registru SP po dvou instrukcích push #033 a push #025
Stav zásobníku a registru SP po instrukci pop
31
17. Co je to přerušení
Představme si situaci ve třídě T3A. Perspektivní učitel předmětu MPS svědomitě a odborně
přednáší svůj předmět. Do třídy vstupuje zasloužilý učitel TEV s důležitou informací. To je
přerušení.
Pokud je takový vstup do výuky povolen, předá vyučující slovo učiteli TEV. Měl by si
zapamatovat, o čem mluvil. Až učitel TEV skončí, vezme si opět slovo učitel předmětu MPS.
Představme si situaci ve třídě T4A. Perspektivní učitel předmětu MPS svědomitě a odborně
přednáší svůj předmět. Do třídy vstupuje třídní učitel s důležitou informací. To je přerušení.
Pokud je takový vstup do výuky povolen, předá vyučující slovo třídnímu učiteli. Měl by si
zapamatovat, o čem mluvil. Během povídání třídního učitele vstoupí do třídy pan ředitel. To je
přerušení přerušení. Protože pan ředitel má vyšší prioritu, předá mu třídní učitel slovo. Měl
by si zapamatovat, o čem mluvil. Až pan ředitel domluví, vezme si opět slovo třídní učitel. Až
třídní učitel skončí, vezme si opět slovo učitel předmětu MPS.
Procesor se chová jako perspektivní učitel MPS. Vede si svou podle programu a neohlíží se na
nic a na nikoho. Na rozdíl od učitele se na konci každého instrukčního cyklu ptá, jestli nějaký
zdroj přerušení poslal žádost o přerušení (Interrupt request).
Zdrojem požadavku na přerušení může být téměř cokoliv. U osobního počítače to může být
kliknutí myší, stlačení klávesy. U mikrořadiče to může být kterákoliv z periferií, čítač, AD
převodník, vnější signál.
Každý ze zdrojů přerušení má přidělený jeden bit (příznak, flag) v registru přerušení. Příklad
řídícího registru přerušení v mikrořadičích PIC16:
R/W
GIE
0
R/W
PEIE
0
INTCON Interrupt Control Register
R/W
R/W
R/W
R
T0IE
INTE
RBIE
T0IF
0
0
0
0
adresa
R
INTF
0
R
RBIF
x
0B H
bank 0
Bit T0IF je příznak požadavku na přerušení od čítače TMR0 a je nastaven při přeplnění čítače.
Přerušení může být povoleno (Enabled) nastavením bitu T0IE. Všechna přerušení mohou být
povolena nastavením bitu GIE (General Interrupt Enabled).
Když procesor při chodu programu otestuje, že některý z příznaků přerušení je nastaven a
přerušení je povoleno, tak:
- uloží návratovou adresu do zásobníku
- uloží do PC adresu, kterou má vektor přerušení k danému zdroji přerušení přidělenu
- vykoná program, napsaný jako obsluha přerušení (podobně jako podprogram)
- ukončí obslužný program, vyzvedne návratovou adresu, pokračuje v hlavním programu
Mikrořadiče PIC16F mají vektor přerušení omezen na jedinou adresu 0004h, na kterou musí být
uložena první instrukce obslužné rutiny přerušení.
Mikrořadiče s klasickou architekturou mají vektor přerušení o více Bytech, každý zdroj přerušení
má svoji adresu pro skok na obslužnou rutinu. Navíc je možné zdrojům přerušení
naprogramovat prioritu přerušení, tj. pořadí, ve kterém jsou přerušení obsloužena, pokud
v daný okamžik přijde více požadavků na přerušení. Některé mikrořadiče mají nemaskovatelné
přerušení, které není možné zakázat a je obslouženo vždy s nejvyšší prioritou.
32
18. Co je to vývojový diagram.
Vývojový diagram (flowchart) je druh diagramu, který slouží ke grafickému znázornění
jednotlivých kroků algoritmu nebo obecného procesu. Vývojový diagram používá symboly, které
jsou navzájem propojeny pomocí orientovaných šipek.
Znázorněný vývojový diagram má vážnou chybu: Nepoužívá normalizované symboly.
Symbol provedení definované operace. Možnost vstupu do
tohoto symbolu je z libovolné strany a těchto vstupů může být i
několik. Výstup je v zásadě jen jeden.
Symbol rozhodování. Má jeden vstup a dva alternativní
výstupy, které jsou aktivní po vyhodnocení podmínky uvnitř
symbolu.
Mezní symbol. Začátek nebo konec.
33
Vývojový diagram nahoře je ale správný v tom, že zobrazuje algoritmus. Vývojový diagram
může sestavit člověk, který neví, v jakém jazyku bude program napsán, nemusí znát žádný
programovací jazyk.
Vývojový diagram pro kontrolu funkčnosti elektrické žárovky pak může vypadat takto:
34
Download

Stáhnout - SPŠel•it Dobruška