24.4.2009
1
MikrokontroléryMikrokontroléry
Úvod
Popis a definice mikrokontroléruTypy architektur v mikroprocesorové technice
von Neumann, Harvardská, CISC, RISC, VLIW, ...
Obecná bloková struktura mikrokontroléruAritmeticko/logicka jednotka, centralní řídicí jednotka, paměti vstupně/výstupní obvodypaměti, vstupně/výstupní obvody
24.4.2009
2
Úvod
Popis a použití mikrokontroléruTypy architektur v mikroprocesorove technice
von Neumann, Harvardská, CISC, RISC, VLIW, ...
Obecná bloková struktura mikrokontroléruAritmeticko/logicka jednotka, centralní řídicí jednotka, paměti vstupně/výstupní obvodypaměti, vstupně/výstupní obvody
Popis a použití mikrokontroléru
Definice:Mikroprocesor (MPU - Microprocessor Unit) je centrální řídicí jednotka (CPU - Central Processing Unit) realizovaná na samostatném čipu.Doplněním mikroprocesoru o podpůrnéDoplněním mikroprocesoru o podpůrné obvody, tj. vstupně/vystupní periferie a pamet' (pro program i data) vzniknemikropočítač.
24.4.2009
3
Popis a použití mikrokontroléru
Definice:Mikrokontrolér (MCU - Microcomputer Unit) vznikne sdružením všech částí mikropočítače (řídicí jednotka, paměti RAM, ROM, vstupně/výstupní, čítač/časovač, a jiné periferie) na čipj p ) p
Trocha historiePrvní mikroprocesor vyvinula firma I l 19 1 D l č íIntel v roce 1971. Dostal označení 4004, které pocházelo z jeho 4-bitové architektury
» 4bitova CPU, 16pinove pouzdro, hodinový signál 740kHz, » Harvardská architektura (tj. oddělená pamět' pro program a data),» 8 bitu instrukce, 4 bity data,, y ,» Instrukční sada: 46 instrukcí » Původně určen pro kalkulačky.
24.4.2009
4
Trocha historiePrvní mikrokontrolér vytvořila firma T I dTexas Instruments pod oznacenm TMS1000 v roce1974
» 4bitová CPU, 28pinove pouzdro, hodinový signál 400kHz, » Harvardská architektura – 32 B RAM a 1kB ROM,» periferie - oscilátor, p ,
4 vstupní a11 výstupních bran, 8bitový paralelní port
Historie přehled1971 - Intel 4004 - první mikroprocesor - 4bitový1972 - Intel 8008 - 8bitový mikroprocesor1974 - Intel 8080 - 8bitový mikroprocesor, který se stal základem prvních 8bitových osobních počítačů1975 - MOS Technology 6502 - 8bitový mikroprocesor, montovaný do Apple II, Commodore 64 a Atari1975 - Motorola 6800 - první procesor firmy Motorola1975 - AMD nastupuje na trh s řadou Am29001976 - TI TMS 9900 - 16bitový mikroprocesor1976 - Zilog Z80 - 8bitový mikroprocesor, s rozšířenou instrukční sadou Intel 8080 frekvence až 10 MHzIntel 8080, frekvence až 10 MHz1978 - Intel 8086 - 16bitový mikroprocesor, první z architektury x861978 - Intel 8088 - 16bitový mikroprocesor s 8bitovou sběrnicí, který byl použit v prvním IBM PC v roce 1981
24.4.2009
5
Historie přehled1979 - Motorola 68000 - 32/16bitový mikroprocesor1979 - Zilog Z8000 - 16bitový mikroprocesor1979 - Zilog Z8000 - 16bitový mikroprocesor1980 - IBM 801 - 24bitový experimentální procesor s revoluční RISC architekturou dosahující vynikajícího výkonu1980 - Intel 8051 - 8bitový mikroprocesor se základní sadou periferií pro emebedded systémy1982 - Intel 80286 - 16bitový mikroprocesor1983 - TMS32010 - první DSP firmy Texas Instruments1985 Intel 80386 32bitový mikroprocesor (měl 275 000 tranzistorů)1985 - Intel 80386 - 32bitový mikroprocesor (měl 275 000 tranzistorů)1986 - Acorn ARM - 32bitový RISC mikroprocesor, z Advanced RISC Machine, původně Acorn RISC Machine, použit i v domácích počítačích1989 - Intel 80486 - 32bitový mikroprocesor s integrovaným matematickým koprocesorem1989 - Sun SPARC - 32bitový RISC mikroprocesor, z Scalable(původně Sun Processor ARChitecture)
Historie přehled• 1992 - DEC Alpha - 64bitový RISC mikroprocesor• 1992 - Siemens 80C166 - 16bitový mikroprocesor pro průmyslové• 1992 - Siemens 80C166 - 16bitový mikroprocesor pro průmyslové
embedded systémy s bohatou sadou periferií• 1993 - Intel Pentium - 32bitový mikroprocesor nové generace (3,3
milionu tranzistorů)• 1995 - Intel Pentium Pro - 32bitový mikroprocesor nové generace pro
servery a pracovní stanice (5,5 milionu tranzistorů)• 1995 - Sun UltraSPARC - 64bitový RISC mikroprocesor• 1997 - Intel Pentium II - 32bitový mikroprocesor nové generace s novou1997 Intel Pentium II 32bitový mikroprocesor nové generace s novou
sadou instrukcí MMX (7,5 milionu tranzistorů)• 1997 - Sun picoJava - mikroprocesor pro zpracování Java bytekódu• 1999 - Intel Celeron - 32bitový mikroprocesor odvozený původně
od Intel Pentium II pro nejlevnější PC• 1999 - Intel Pentium III - 32bitový mikroprocesor nové generace s
novou sadou instrukcí SIMD (9,5 milionu tranzistorů)
24.4.2009
6
Historie přehled• 2000 - Intel Pentium 4 - 32bitový mikroprocesor s řadou technologií
orientovaných na dosažení vysoké frekvenceorientovaných na dosažení vysoké frekvence• 2001 - Intel Itanium - 64bitový mikroprocesor nové generace pro
servery• 2003 - AMD Athlon 64 - 64bitový mikroprocesor nové generace pro
desktopy s instrukční sadou AMD64, zpětně kompatibilní s x86• 2006 - Intel Core - 64bitová architektura, na které jsou postaveny
procesory Core Duo, Core 2 Duo, Core Solo, Core 2 Quad• 2007 - AMD uvádí novou řadu procesorů Phenomp• 2008 - Intel Core i7 - nová řada CPU od Intelu
Úvod
Popis a definice mikrokontroléruTypy architektur v mikroprocesorové technice
von Neumann, Harvardská, CISC, RISC, VLIW, ...
Obecná bloková struktura mikrokontroléruAritmeticko/logicka jednotka, centralní řídicí jednotka, paměti vstupně/výstupní obvodypaměti, vstupně/výstupní obvody
24.4.2009
7
Základní strukturaALU - taktovací kmitočet bývá jednotky až stovky MHz, šířka slova procesoru 4 až 64 bitůslova procesoru 4 až 64 bitů,operační paměť - paměť typu RAM, velikost od jednotek byte po desítky kB,paměť programu - paměť typu ROM, EPROM, EEPROM nebo flash obsahující program a data, velikost řádově desítky až stovky kB,oscilátor - RC nebo řízený krystalem,oscilátor RC nebo řízený krystalem,vstupně/výstupní rozhraní - takzvané porty.Počítač může mít architekturu typu von Neumann nebo harvardskou.
Obecné schéma Mikroprocesoru
Datová sběrnicesystému
Aritmeticko- logická Řídící
j d tk
Datové registry
Adresové registry
Vyrovnávací registrVnitřní datová
sběrnice
gjednotka jednotka Adresové registry
Přizpůsobovacíobvody
Řídící signálySynchronizační
signályAdresová sběrnice
systému
24.4.2009
8
Dělení mikropočítačů podle architektury
Dvě základní koncepce:Von NeumannovaHarvardská
Tyto dvě koncepce vznikly jako výsledek snažení se Princetonské a Harvardské university navrhnout architekturu, která by se nejvíce hodila pro potřeby americké armády
Poznámka:Dělení na „Harvardskou“ a „Von Neumannovu“ architekturu je však při dnešním stupni
integrace již poněkud akademické. U moderních architektur se často uživateli adresový prostor jeví navenek jako lineární (Von Neumannovský), zatímco fyzicky jsou paměti k jádru připojeny pomocí několika nezávislých sběrnic (např. jedna sběrnice pro FLASH/ROM (paměť programu), druhá pro uživatelskou vnitřní RAM a zásobník, třetí pro připojení integrovaných paměťově mapovaných periferií, další pro připojení externí RAM).
Von Neumannova architektura
Popisuje základní bloky systému mikropočítačeZákladní myšlenka spočívá v použití pouze jedné paměti pro data i programVon Neumannovu architekturu využívají počítače typu x86 (PC)počítače typu x86 (PC)
24.4.2009
9
Von Neumannova architektura
Řídícíjednotka
Paměť
ALU
Vstupně-výstupníobvody
Von Neumannova architekturaČíslicový počítač se skládá z následujících funkčních jednotek:j
paměť (vnitřní, operační paměť),řadič,aritmetická a logická jednotka (ALJ),vstupní a výstupní jednotky.
2) Struktura číslicového počítače není závislá na typu řešené úlohy, je univerzální, číslicový počítač se programuje obsahem operační pamětiprogramuje obsahem operační paměti.
3) Instrukce programu i operandy, s nimiž program pracuje, jsou uloženy v téže paměti (operační paměti), jde-li o instrukci či o operand rozpoznává počítač „z kontextu“.
24.4.2009
10
Pravidla
Program je vykonáván sekvenčně, tzn. tak jak jdou instrukce za sebouZměnu pořadí vykonávání instrukcí lze provést pouze podmíněným či nepodmíněným skokem nebo voláním podprogramup p gPřednost v podobě universálnosti vede k neefektivnosti zpracování problému
Pravidla
Neexistuje princip paralelismuVýhodnější a přehlednější pro tvorbu aplikacíNevýhodné pro optimalizaci výkonu – vždy je zatížena jen jedna část
Vnitřní architektura je nezávislá na řešení úloze. Veškeré změny jsou řešeny programově tzn. počítač je řízen obsahem paměti.
24.4.2009
11
Harvardská architekturaChronologicky navazuje na architekturu vonN d t ň j ěkt é j jí d t tkNeumnannovu a odstraňuje některé její nedostatkyZásadní rozdíl je v oddělení paměti dat a programu
Program nemůže přepsat sám sebeVyužití pamětí realizovaných jinými technologiemi (EEPROM, Flash, FRAM, DRAM)Dvě sběrnice (adresová a datová) umožňuje současný přístup k instrukcím i datům
Sekvenční vykonávání instrukcí je zachováno
Harvardská architektura
Řídící jednotka
Paměť programu
ALU
Paměť dat
Vstupně-výstupníobvody
24.4.2009
12
Koncepce oddělené paměti Harvardské architektury
Paměť programu je uložen v paměti FLASH šířka slovapaměti FLASH, šířka slova 16bitůPaměť dat (RAM) je typu SRAM. 32B zabírají pracovní 8bitové registry, 64 SFR a zbytek do 8kB je určen pro všeobecné použití.Mikrokontroler integruje také 512B paměti EEPROM
V čem spočívá činnost mikropočítače?
Adresa kódu první instrukce je dána HW ČP. Výběr je vyvolán aktivací RESET!aktivací RESET!
Od tohoto okamžiku procesor (ČP) „ví, co má dělat“.
Činnost ČP spočívá v neustálém opakování dvou pracovních cyklů:- ČTENÍ INSTRUKCE Z OP,
Ó Á Í Í- DEKÓDOVÁNÍ A PROVEDENÍ INSTRUKCE.V této činnosti má výhradní postavení registr PROGRAMOVÝ ČÍTAČ (PC)
24.4.2009
13
Rozdělení CISC/RISC
Dělení z pohledu instrukční sadyCISC (Complex Instruction Set Computer)RISC (Reduced Instruction Set Computer)VLIW (Very Long Instruction Word)
RISCRISC (Reduced Instruction Set Computer)čít č d k i t kč í dpočítač s redukovanou instrukční sadou
Shrnutí typických rysů RISC procesorů:redukovaná sada instrukcí obsahuje hlavně jednoduché instrukce,délka provádění jedné instrukce je vždy jeden cyklus (tj. délka v bitech všech instrukcí je stejná),mikroinstr kce jso hard aro ě implemento án namikroinstrukce jsou hardwarově implementovány na procesoru, čímž je velmi výrazně zvýšena rychlost jejich provádění,registry jsou pouze víceúčelové (nezáleží, který z nich instrukce využije, což zjednodušuje návrh překladačů),využívají řetězení instrukcí (pipelining).
24.4.2009
14
CISCCISC (Complex Instruction Set Computer)
procesor s velkou sadou instrukcí (řádově stovky) a relativně malým počtem registrů (jejich počet obvykle nepřesahuje 30).
Procesory CISC mají různě dlouhé strojové instrukce, jejichž vykonání trvá různě dlouhou dobu.
Označení CISC bylo zavedeno jako protiklad až poté, co se prosadily procesory RISC, které mají instrukční sadu naopak maximálně redukovanou.
CISC versus RISCširoká instrukční sada procesorů CISC usnadňuje jejich programování protože není některé operace nutnéprogramování, protože není některé operace nutné rozepisovat (například násobení)ve strojovém kódu (nebo v jazyce symbolických adres) se dnes programuje jen minimálně.Složitost CISC procesorů vede k problémům při výrobě (velká spotřeba materiálu, větší pravděpodobnost vady, komplikovaný návrh, problémy s vysokými p ý p y y ýfrekvencemi, pipelining, cache atd).Typickými zástupci koncepce CISC jsou procesory rodiny Motorola 68000 a procesory postavené na architektuře Intel x86.
24.4.2009
15
Procesory VLIWProcesory VLIV (Very Long Instruction Word –V l i dl hé i t kč í l ) žň jíVelmi dlouhé instrukční slovo) umožňují efektivnější vykonávání programu, protože je u nich podporováno hardwarově paralelní zpracování instrukcíParalelismus je realizován větším počtem funkčních jednotekjPodstata paralelního zpracování: během násobení dvou čísel je možné operandy sčítat a z paměti načíst další hodnoty
ARMAdvanced RISC MachineJ 32bit á ik á hit ktJe 32bitová mikroprocesorová architektura typu RISC vyvinutá firmou ARM LimitedEnergeticky úsporné vlastnosti (používány hlavně v mobilním odvětví spotřební elektroniky)První mikroprocesor s architekturou ARM byl navržen firmou ARM Limited v roce 1984.Dnes tvoří rodina procesorů ARM 75 % všech 32bitovýchDnes tvoří rodina procesorů ARM 75 % všech 32bitových RISC procesorů ve vestavěných zařízeních, což z ní dělá nejpoužívanější architekturu na světě.
24.4.2009
16
ARM - charakteristika32bitová vnitřní architektura32bit á d t á bě i t tí 32 MB/32bitová datová sběrnice s propustností 32 MB/s26bitová adresová sběrnice (dostupný lineární adresní prostor 64 MiB)25 vnitřních 32bitových registrůpřístup do paměti pouze instrukcemi Load/Storečástečné překrývání vnitřních registrůnejdelší doba reakce na přerušení 3 milisekundyhodinová frekvence 8 MHzmožnost podmíněného vykonání instrukcíprůměrná rychlost vykonání instrukcí 3 až 4 MIPSmožnost připojení standardních pamětí DRAMjednoduchý a výkonný instrukční soubor
Architektura procesoru ARM Procesor ARM obsahuje 44 základních instrukcí s jednotnou šířkou 32 bitůšířkou 32 bitů. V jednom taktu jsou vykonány pouze instrukce pracující s ALU, s registry nebo s přímými operandy.Procesor pracuje ve čtyřech základních režimech:
uživatelský režim USRprivilegovaný režim supervizora SUPpri ilego aný režim přer šení IRQprivilegovaný režim přerušení IRQprivilegovaný režim rychlého přerušení FIQ
V procesoru je obsaženo 25 částečně se překrývajících 32bitových registrů (15 registrů je univerzálních a zbývajících 10 má speciální funkce), z toho 16 registrů je v každém režimu činnosti programově přístupných.
24.4.2009
17
Periferie mikrokontrolerůřadič přerušení,č ččasovače,čítače,watchdog timer,řadič displeje,řadič klávesnice,programovatelné hradlové pole,paralelní porty (až desítky pinů),sériové porty (asynchronní, synchronní)porty komunikačních sběrnic (CAN, Ethernet)A/D převodníky
Watchdog timerWatchdog nebo Watchdog timer, zkráceně WDT resetuje systém při jeho zaseknutí (deadlocku). ( )
Program (většinou v hlavní smyčce) periodicky signalizuje watchdogu svůj chod. Pokud systém určitý čas nesignalizuje chod (typicky milisekundy až sekundy), pak watchdog způsobí reset systému.
Složitější watchdogy mohou navíc ještě zaznamenávat na nevolatilní(nezávislé na napájení tj. ukládání do energeticky nezávislé paměti) médium ladící informace (např časy kdy došlo k zresetování systému amédium ladící informace (např. časy kdy došlo k zresetování systému a jaký byl obsah registrů). Watchdog může být realizován pomocí x-bitového čítačeÚčelem a současně důvodem existence watchdogu je přivést systém prostřednictvím resetu ze zaseknutého stavu zpět k normální funkci. Bez watchdogu by musel být čip resetován manuálně.
24.4.2009
18
PřerušeníPřerušení je způsobeno vnější událostí, která nastává asynchronně vzhledem k běhu HLAVNÍHO PROGRAMU“asynchronně vzhledem k běhu „HLAVNÍHO PROGRAMUÚčelem přerušení je přimět procesor, aby na tuto vnější událost určitým způsobem reagoval.Procesor neumí nic jiného, než postupně vykonávat instrukce programu – to je i jeho jedinou možnou reakcí.REAKCÍ procesoru na vnější přerušení je tedy dočasné pozastavení vykonávání instrukcí hlavního programu apozastavení vykonávání instrukcí hlavního programu a spuštění programu jiného – obslužného podprogramu přerušení – vše probíhá formou volání podprogramu.
Reakce procesoru na přerušení
Jakou část své činnosti procesor po přijetí žádosti o přerušení dokončí???Protože následuje programová obsluha přerušení, musí se dokončit instrukce –přerušovací vstup je testován před koncem každé z prováděných instrukcí!!!p ýCo by procesor dělal po dokončení instrukce, kdyby nepřišla žádost o přerušení???
24.4.2009
19
Co tedy udělá procesor po dokončení instrukce po přerušení???
Předpokládáme jediný přerušovací vstup!!!V i t 1 b úč ti ějšíh h d ů bí HWVarianta 1 – bez účasti vnějšího hardware, působí pouze HW řadiče!!!Začne se provádět instrukce CALL APPP, kde APPP je vstupní adresa obslužného podprogramu přerušení – do STACKU je uchována návratová adresa = adresa následující instrukce hlavního programu.Kromě toho může procesor učinit nějakou akci vedoucí kKromě toho může procesor učinit nějakou akci vedoucí k uchování stavu (registry, příznaky)
Co tedy udělá procesor po dokončení instrukce po přerušení???
Předpokládáme jediný přerušovací vstup!!!Varianta 2 s účastí vnějšího hardware!!!Varianta 2 – s účastí vnějšího hardware!!!MP generuje signál INTA/ (časově odpovídá signálu MEMR/ je to obdoba cyklu FETCH), ale adresová sběrnice je pasivní, INTA/ uvolňuje na datovou sběrnici informaci z vnější logiky.Může to být kód instrukce CALL APPP, kód jakékoliv jiné instrukce, ale většinou to je alespoň část adresy APPP (nebo zkrácené volání RST n). Do STACKU je uchována návratová adresa = adresaDo STACKU je uchována návratová adresa = adresanásledující instrukce hlavního programu.Kromě toho může procesor učinit nějakou akci vedoucí k uchování stavu (registry, příznaky).
24.4.2009
20
Programové ovládání přerušovacího systému, možnost zákazu přerušení
Přerušení lze programově zakázat (instrukce typu DisableInterrupt) a opět povolit (instrukce typuDisableInterrupt) a opět povolit (instrukce typu EnableInterrupt) v těch úsecích programu, které musí proběhnout jako celek (např. při sekvenčním řízení).Přerušení je vždy zakázáno hardwarem (nutno napřed programově inicializovat přerušovací systém, přerušení povoluje až uživatelský program):- po RESETU,p- po přijetí přerušení.Specifika hladinových a dynamických vstupů žádostí o přerušení (s ohledem na testování 1x během instrukce a na zdroj vstupního signálu).
Prioritní přerušovací systémV1 – jeden vstup, reaguje jen HW MPnutno řešit softwarově za podpory vnějšího hardwarenutno řešit softwarově za podpory vnějšího hardware.
V2 – jeden vstup, reaguje i vnější HWmožno řešit vnějším HW – například podle priority přerušení je procesoru vnucována příslušná APPP nebo její část.
V3 – více vstupů, reaguje i vnější HWp g j jřešeno vnitřním HW procesoru, často v kombinaci s vnějším HW.
24.4.2009
21
Maskování přerušeníIndividuální maskování jednotlivých (prioritních) úrovní.
Možnost programového „čtení“ stavu přerušovacích vstupů ještě před maskou.
Nemaskovatelné přerušení – nejvyšší priorita, vždy povoleno (ošetření výpadku napájení) – speciální instrukce návratu (zachovává informaci o stavu přerušovacího systému před(zachovává informaci o stavu přerušovacího systému před tímto přerušením).
Adresování V/V zařízení1. Adresa je součástí či externím parametrem V/V instrukce.2 K ždý bit d bí á á ě j d V/V ří í li á í2. Každý bit adresy vybírá právě jedno V/V zařízení – lineární adresace.NEBO3. Adresa je plně dekódována (n-bitů, výběr jednoho z 2n
zařízení – adresace s dekódováním.NEBO4 Kombinace působů 2 a 34. Kombinace způsobů 2 a 3.
24.4.2009
22
Kvaziobousměrný V/V
Realizace V/V bran – 8051
24.4.2009
23
Násobky a užívané předponyV prosinci 1998 proto IEC vytvořila dodatek k normě IEC 60027 2 (v Česku převzatá jako ČSN IEC 60027 2) veIEC 60027-2 (v Česku převzatá jako ČSN IEC 60027-2), ve kterém zavedla pro počítačové jednotky nový systém označování násobků. V tomto systému bylo pro původní „velké kilo“ = 1024 B navrženo označení kibibyte a značka KiB, zatímco jednotka kilobyte (se značkou kB) označuje 1000 B, tak jak je obvyklé v soustavě SI.
Binární násobkyJednotka Značka Velikost v B (byte) Mocnina
Kibibyte KiB 1 024 210
Binární násobky
Kibibyte KiB 1 024 210
Mebibyte MiB 1 048 576 220
Gibibyte GiB 1 073 741 824 230
Tebibyte TiB 1 099 511 627 776 240
Pebibyte PiB 1 125 899 906 842 624 250
Exbibyte EiB 1 152 921 504 606 846 976 260
Zebibyte ZiB 1 180 591 620 717 411 303 424 270
Yobibyte YiB 1 208 925 819 614 629 174 706 176 280
24.4.2009
24
Násobky a užívané předpony
Jednotka Značka B kB KiB MB MiB GB GiB TB TiB
Přehled násobných jednotek
Kilobyte kB 1000 1 ~0,9766
Kibibyte KiB 1024 1,024 1
Megabyte MB 1 000 000 1000 ~976,6 1 ~0,9537
Mebibyte MiB 1 048 576 ~1048,6 1024 1,049 1
Gigabyte GB 109 1 000 000 976 562,5 1000 953,7 1 ~0,9313
Gibibyte GiB ~1,074·109 ~1 073 742 1 048 576 ~1073,7 1024 1,074 1
Terabyte TB 1012 109 ~0,9766·109 1 000 000 ~953 674,3 1000 931,3 1 ~0,9095
Tebibyte TiB ~1,1·1012 ~1,1·109 ~1,074·109 ~1 099 512 1 048 576 ~1099,5 1024 ~1,1 1