24.4.2009
Mikrokontroléry
Úvod Popis a definice mikrokontroléru Typy architektur v mikroprocesorové technice von Neumann, Harvardská, CISC, RISC, VLIW, ...
Obecná bloková struktura mikrokontroléru Aritmeticko/logicka jednotka, centralní řídicí jednotka, paměti vstupně/výstupní obvody paměti,
1
24.4.2009
Úvod Popis a použití mikrokontroléru Typy architektur v mikroprocesorove technice von Neumann, Harvardská, CISC, RISC, VLIW, ...
Obecná bloková struktura mikrokontroléru Aritmeticko/logicka jednotka, centralní řídicí jednotka, paměti vstupně/výstupní obvody paměti,
Popis a použití mikrokontroléru Definice: z Mikroprocesor (MPU - Microprocessor Unit) je centrální řídicí jednotka (CPU - Central Processing Unit) realizovaná na samostatném čipu. z Doplněním mikroprocesoru o podpůrné obvody, tj. vstupně/vystupní periferie a pamet' (pro program i data) vznikne mikropočítač.
2
24.4.2009
Popis a použití mikrokontroléru Definice: z Mikrokontrolér (MCU - Microcomputer Unit) vznikne sdružením všech částí mikropočítače (řídicí jednotka, paměti RAM, ROM, vstupně/výstupní, periferie)) na čip p čítač/časovač, a jjiné p
Trocha historie První mikroprocesor vyvinula firma I l v roce 1971. Intel 19 1 D Dostall označení č í 4004, které pocházelo z jeho 4bitové architektury » 4bitova CPU, 16pinove pouzdro, hodinový signál 740kHz, » Harvardská architektura (tj. oddělená pamět' pro program a data), » 8 bitu instrukce,, 4 bityy data,, » Instrukční sada: 46 instrukcí » Původně určen pro kalkulačky.
3
24.4.2009
Trocha historie První mikrokontrolér vytvořila firma T Texas I Instruments pod d oznacenm TMS1000 v roce1974 » 4bitová CPU, 28pinove pouzdro, hodinový signál 400kHz, » Harvardská architektura – 32 B RAM a 1kB ROM, »p periferie - oscilátor,, 4 vstupní a11 výstupních bran, 8bitový paralelní port
Historie přehled z z z z z z z z z z
1971 - Intel 4004 - první mikroprocesor - 4bitový 1972 - Intel 8008 - 8bitový mikroprocesor 1974 - 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 Atari 1975 - Motorola 6800 - první procesor firmy Motorola 1975 - AMD nastupuje na trh s řadou Am2900 1976 - TI TMS 9900 - 16bitový mikroprocesor 1976 - Zilog Z80 - 8bitový mikroprocesor, s rozšířenou instrukční sadou Intel 8080 8080, frekvence až 10 MHz 1978 - Intel 8086 - 16bitový mikroprocesor, první z architektury x86 1978 - Intel 8088 - 16bitový mikroprocesor s 8bitovou sběrnicí, který byl použit v prvním IBM PC v roce 1981
4
24.4.2009
Historie přehled z z z
z
z z z z
z
z
1979 - Motorola 68000 - 32/16bitový mikroprocesor 1979 - Zilog Z8000 - 16bitový mikroprocesor 1980 - IBM 801 - 24bitový experimentální procesor s revoluční RISC architekturou dosahující vynikajícího výkonu 1980 - Intel 8051 - 8bitový mikroprocesor se základní sadou periferií pro emebedded systémy 1982 - Intel 80286 - 16bitový mikroprocesor 1983 - TMS32010 - první DSP firmy Texas Instruments 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čích 1989 - Intel 80486 - 32bitový mikroprocesor s integrovaným matematickým koprocesorem 1989 - 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é 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 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ů)
5
24.4.2009
Historie přehled • • • • • •
2000 - Intel Pentium 4 - 32bitový mikroprocesor s řadou technologií orientovaný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 p procesorů Phenom 2008 - Intel Core i7 - nová řada CPU od Intelu
Úvod Popis a definice mikrokontroléru Typy architektur v mikroprocesorové technice von Neumann, Harvardská, CISC, RISC, VLIW, ...
Obecná bloková struktura mikrokontroléru Aritmeticko/logicka jednotka, centralní řídicí jednotka, paměti vstupně/výstupní obvody paměti,
6
24.4.2009
Základní struktura z
z
z
z z z
ALU - taktovací kmitočet bývá jednotky až stovky MHz, šířka slova procesoru 4 až 64 bitů, 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, vstupně/výstupní rozhraní - takzvané porty. Počítač může mít architekturu typu von Neumann nebo harvardskou.
Obecné schéma Mikroprocesoru Datová sběrnice systému
Vyrovnávací registr Vnitřní datová sběrnice
Datové registry Aritmeticko g - logická jednotka
Řídící j d tk jednotka
Adresové registry
Přizpůsobovací obvody
Řídící signály Synchronizační signály
Adresová sběrnice systému
7
24.4.2009
Dělení mikropočítačů podle architektury z
Dvě základní koncepce: z z
z
Von Neumannova Harvardská
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 z
z
z
Popisuje základní bloky systému mikropočítače Základní myšlenka spočívá v použití pouze jedné paměti pro data i program Von Neumannovu architekturu využívají počítače typu x86 (PC)
8
24.4.2009
Von Neumannova architektura Paměť
ALU
Řídící jednotka
Vstupně-výstupní obvody
Von Neumannova architektura z
Číslicový počítač se skládá z následujících funkčních j jednotek: z z z z
paměť (vnitřní, operační paměť), řadič, aritmetická a logická jednotka (ALJ), vstupní a výstupní jednotky.
z
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ěti paměti.
z
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“.
9
24.4.2009
Pravidla z
z
z
Program je vykonáván sekvenčně, tzn. tak jak jdou instrukce za sebou Změ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 p p g podprogramu Přednost v podobě universálnosti vede k neefektivnosti zpracování problému
Pravidla z
Neexistuje princip paralelismu z z
z
Vý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.
10
24.4.2009
Harvardská architektura z
z
Chronologicky navazuje na architekturu von N Neumnannovu a odstraňuje d t ň j některé ěkt é jjejí jí nedostatky d t tk Zásadní rozdíl je v oddělení paměti dat a programu z z
z
z
Program nemůže přepsat sám sebe Využ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 Paměť programu
ALU
Paměť dat
Řídící jednotka
Vstupně-výstupní obvody
11
24.4.2009
Koncepce oddělené paměti Harvardské architektury z
z
z
Paměť programu je uložen v paměti FLASH, 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? z
Adresa kódu první instrukce je dána HW ČP. Výběr je vyvolán aktivací RESET!
z
Od tohoto okamžiku procesor (ČP) „ví, co má dělat“.
z
Č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)
z
12
24.4.2009
Rozdělení CISC/RISC z
Dělení z pohledu instrukční sady z z z
CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer) VLIW (Very Long Instruction Word)
RISC RISC (Reduced Instruction Set Computer) počítač čít č s redukovanou d k i t kč í sadou instrukční d Shrnutí typických rysů RISC procesorů: z redukovaná sada instrukcí obsahuje hlavně jednoduché instrukce, z délka provádění jedné instrukce je vždy jeden cyklus (tj. délka v bitech všech instrukcí je stejná), z mikroinstrukce mikroinstr kce jso jsou hard hardwarově aro ě implementovány implemento án na procesoru, čímž je velmi výrazně zvýšena rychlost jejich provádění, z registry jsou pouze víceúčelové (nezáleží, který z nich instrukce využije, což zjednodušuje návrh překladačů), z využívají řetězení instrukcí (pipelining).
z
13
24.4.2009
CISC z
CISC (Complex Instruction Set Computer)
z
procesor s velkou sadou instrukcí (řádově stovky) a relativně malým počtem registrů (jejich počet obvykle nepřesahuje 30).
z
Procesory CISC mají různě dlouhé strojové instrukce, jejichž vykonání trvá různě dlouhou dobu.
z
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 z
z
z
z
široká instrukční sada procesorů CISC usnadňuje jejich programování protože není některé operace nutné programování, 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, p ý návrh, p problémy y s vysokými y ý komplikovaný frekvencemi, pipelining, cache atd). Typickými zástupci koncepce CISC jsou procesory rodiny Motorola 68000 a procesory postavené na architektuře Intel x86.
14
24.4.2009
Procesory VLIW z
z
z
Procesory VLIV (Very Long Instruction Word – V l i dl Velmi dlouhé hé iinstrukční t kč í slovo) l ) umožňují žň jí 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 j funkčních jednotek Podstata paralelního zpracování: během násobení dvou čísel je možné operandy sčítat a z paměti načíst další hodnoty
ARM z z
z
z
z
Advanced RISC Machine J 32bitová Je 32bit á mikroprocesorová ik á architektura hit kt typu RISC vyvinutá firmou ARM Limited Energeticky ú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ých RISC procesorů ve vestavěných zařízeních, což z ní dělá nejpoužívanější architekturu na světě.
15
24.4.2009
ARM - charakteristika z z z
z z z z z z z z z
32bitová vnitřní architektura 32bit á d 32bitová datová t á sběrnice bě i s propustností t tí 32 MB/ MB/s 26bitová 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 milisekundy hodinová frekvence 8 MHz možnost podmíněného vykonání instrukcí průměrná rychlost vykonání instrukcí 3 až 4 MIPS možnost připojení standardních pamětí DRAM jednoduchý a výkonný instrukční soubor
Architektura procesoru ARM z
z
z
z
Procesor ARM obsahuje 44 základních instrukcí s jednotnou šířkou 32 bitů 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: z uživatelský režim USR z privilegovaný režim supervizora SUP z privilegovaný pri ilego aný režim přer přerušení šení IRQ z privilegovaný 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.
16
24.4.2009
Periferie mikrokontrolerů z z z z z z z z z z z
ř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 timer z
Watchdog nebo Watchdog timer, zkráceně WDT resetuje systém při jeho zaseknutí (deadlocku). ( )
z
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.
z
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ř (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ě.
z z
z
17
24.4.2009
Přerušení z
z
z
z
Přerušení je způsobeno vnější událostí, která nastává asynchronně vzhledem k běhu „HLAVNÍHO HLAVNÍHO PROGRAMU“ 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 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í z
z
z
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 p prováděných ý instrukcí!!! Co by procesor dělal po dokončení instrukce, kdyby nepřišla žádost o přerušení???
18
24.4.2009
Co tedy udělá procesor po dokončení instrukce po přerušení??? z z
Předpokládáme jediný přerušovací vstup!!! V i t 1 – bez Varianta b úč účasti ti vnějšího ějšíh h hardware, d působí ů bí 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í k uchování stavu (registry, příznaky)
Co tedy udělá procesor po dokončení instrukce po přerušení??? z z z
Předpokládáme jediný přerušovací vstup!!! 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 = adresa následující instrukce hlavního programu. Kromě toho může procesor učinit nějakou akci vedoucí k uchování stavu (registry, příznaky).
19
24.4.2009
Programové ovládání přerušovacího systému, možnost zákazu přerušení z
z
z
Přerušení lze programově zakázat (instrukce typu DisableInterrupt) 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ém z
V1 – jeden vstup, reaguje jen HW MP nutno řešit softwarově za podpory vnějšího hardware hardware.
z
V2 – jeden vstup, reaguje i vnější HW mož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.
z
V3 – více vstupů, p reaguje g j i vnější j HW řešeno vnitřním HW procesoru, často v kombinaci s vnějším HW.
20
24.4.2009
Maskování přerušení z
Individuální maskování jednotlivých (prioritních) úrovní.
z
Možnost programového „čtení“ stavu přerušovacích vstupů ještě před maskou.
z
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 tímto přerušením).
Adresování V/V zařízení z z
z z
z z
1. Adresa je součástí či externím parametrem V/V instrukce. 2 Každý 2. K ždý bit adresy d vybírá bí á právě á ě jedno j d V/V zařízení ří í – lineární li á í adresace. NEBO 3. Adresa je plně dekódována (n-bitů, výběr jednoho z 2n zařízení – adresace s dekódováním. NEBO 4 Kombinace způsobů 4. působů 2 a 3 3.
21
24.4.2009
Kvaziobousměrný V/V
Realizace V/V bran – 8051
22
24.4.2009
Násobky a užívané předpony z
V prosinci 1998 proto IEC vytvořila dodatek k normě IEC 60027-2 60027 2 (v Česku převzatá jako ČSN IEC 60027-2), 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ásobky
Binární násobky Jednotka
Značka
Velikost v B (byte)
Mocnina
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
23
24.4.2009
Přehled násobných jednotek
Násobky a užívané předpony Jednotka
Značka
B
kB
KiB
MB
MiB
Kilobyte
kB
1000
1
~0,9766
Kibibyte
KiB
1024
1,024
1
Megabyte
MB
1 000 000
1000
Mebibyte
MiB
1 048 576
Gigabyte
GB
Gibibyte
GB
GiB
~976,6
1
~0,9537
~1048,6
1024
1,049
1
109
1 000 000
976 562,5
1000
GiB
~1,074·109
~1 073 742
1 048 576
~1073,7
Terabyte
TB
1012
109
~0,9766·109
1 000 000 ~953 674,3
Tebibyte
TiB
~1,1·1012
~1,1·109
~1,074·109
~1 099 512 1 048 576 ~1099,5
TB
TiB
953,7
1
~0,9313
1024
1,074
1
1000
931,3
1
~0,9095
1024
~1,1
1
24