CO JE CO ? - SPŠel•it Dobruška
Transkript
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 1s) 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 10m, 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.5m, 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ěď: MikroprocesorP, 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.25s. Č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
Podobné dokumenty
Radiová meteorická detekcn´ı stanice RMDS02C
Tento jev se pak nazývá ”head echo efekt”a je způsoben odrazem signálu od čela plazmatického tubusu vznikajı́cı́ho v atmosféře v těsné blı́zkosti meteoroidu. Je zřejmé, že tento
jev ne...
CZ_ustavy_kniha - České vysoké učení technické v Praze
Pro modifikaci povrchových oblastí materiálů se v ústavu rozvíjí metody
využívající iontových a elektronových svazků. Jsou to zejména metody
iontové implantace a IBAD (Ion Beam Assisted Deposition)...
3.2. Oživení
Pro použití Li-Ion akumulátoru jsem provedl návrh modulu LION2CELL01A, jehož dokumentace
je uvedena v kapitole 9. "Dokumentace navržených modulů".
Počítače a programování 2 - UTEE
poprvé seznámíme s jazykem C a s vývojovým nástrojem Borland C++ Builder 5.0, s jehož
pomocí budeme společně do tajů jazyka C pronikat.
Poté co se v našem kursu podrobně seznámíme s programováním v...
Stáhnout - La Formaggeria
budeme s dcerou povídat v kuse o všem
možném. Během roku na to kvůli práci
není čas a já až v posledních letech
s údivem objevila, jaká chytrá a zajímavá ženská z ní vyrostla. Na dovolené
můžeme ml...