BMPT – Mikroprocesorová technika
1.Architektura mikroprocesorových systémů von Neumanova typu, s Harvardskou architekturou a s architekturou typu VLIW. Paralelní zpracování instrukcí a dat První dělení mikropočítačů iniciovala americká vláda v 70. letech, když požádala Princetonskou a Harvardskou univerzitu, aby navrhly architekturu vhodnou pro potřrby dělostřelectva. Vznikly dvě základní koncepce: - Von Neumannova - Harvardská Von Neumanova architektura - popisuje jak má číslicový systém pracovat a z jakých hlavných částí by se měl skládat: řídicí jednotka, paměti, I/O obvody - zásadní myšlenka von Neumannovy architektury je použití pouze jedné paměti a to pro kontrolní program (instrukce) i pro data – obojí je „jedno a totéž“ - nekoresponduje s vyššími programovacími jazyky, např. neumožňuje pracovat s vícerozměrnými poli. Von Neumannovu architekturu využívají dneska počítače typu PC. - Program je vykonáván sekvenčně, tj. instrukce se provádějí tak jak jdou za sebou – „až na ně dojde řada“. - Změnu pořadí vykonávaní instrukcí lze provést jen podmíněným skokem, nepodmíněným skokem, či voláním podprogramu - Vnitřní architektura ja nezávislá na řešné úloze. Veškeré změny mají být řešny softwarově, tzn. počítač je řízen obsahem paměti - Původní přednost v univerzálnosti architektury je ve svém důsledku nevýhodná – systém dokáže zpracovat libovolný problém, ale neefektivně - Neexistuje princip paralelismu o Výhodnější a přehlednější pro tvorbu aplikací, paralelní programování je složité a špatně čitelné o Nevýhodné pro optimalizaci výkonu jednotlivých částí systému (vždy je zatížena pouze jedna část) - pamět rozdělena na stejně velké buňky, jejich pořadové čísla se využívají jako identifikační adresy Harvardská architektura - chronologicky navazuje na architekturu von Neumannovu a odstraňuje některé její nedostatky - zásadní rozdíl je oddělená část paměti pro program a data o program tak nemůže přepsát sám sebe o možnost použití pamětí odlišných technologií (EEPROM, Flash) o dvě sběrnice umožňují současný přístup k instrukcí i k datům o nevyužitou část paměti pro data ovšem nelze využít pro uložení programu a naopak - sekvenční vykonávání instrukcí zachováno, tzn. že paralelní zpracování lze provádět pouze na úrovni operačního systému
Procesory typu WLIV (Very Long Instruction Word) - velmi dlouhé instrukční slovo - umožňují efektivnější vykonání programu, z důvodu paralelního zpracování instrukcí - paralelismus je realizován větším počtem funkčních jednotek se specifickými funkcemi o aritmetické operace, hardwarová násobička, komunikace s pamětí, bitové operace o každá může pracovat nezávisle na ostatních - podstata paralelního zpracování: zatímco se provádí např. součet dvou čísel, je možné jiné operandy násobit a z paměti si načíst další hodnoty Dělení paralelních systémů: Paralelní systémy lze dělit podle počtu programů, které jsou řešeny současně - SI (Single Instruction Stream) – jeden řešený program - MI (Multiple Instruction Stream) Moderní digitální signálové procesory obsahují strukturu umožňující paralelní zpracování instrukcí i dat - obecně obsahuje samotné jednotky, z nichž každá plní svůj program s jinými daty než jednotky ostatní Paralelní zpracování instrukcí/dat - instrukce je tvořena z několika částí, ale ty se vykonávají současně v několika funkčních jednotkách - tento způsob zpracování výrazným způsobem zvyšuje výkon procesorů, především při práci s vektory - úkolem programátora je „připravit“ data tak, aby vyhovala struktuře SI/MD o snaha o maximální vytížení procesoru
2.Číselná reprezentace v soustavě s pevnou a pohyblivou řádovou čárkou. Reprezentace záporných celých čísel Dekadická, binární, hexadecimální číselná soustava Všechny číslicové systémy pracují v binární soustavě, ale vstupní/výstupní data jsou požadována v dekadické soustavě. Používá tzv. BCD kód, která popisuje každou číslici v dekadické soustavě čtveřicí bitů. Reprezentace záporných celých čísel V číslicových systémech se k vyjádření záporných čísel používá tzv. dvojkový doplněk. Představuje číslo opačné k dané hodnotě. Postup vytvoření dvojkového doplňku: - negace všech bitů - binárně přičíst jedničku
Rychlejší postup: - opisovat všechny nulové bity od LSB - první jednotkový bit opsat - zbývající bity negovat Rozsah hodnot dvojkového doplňku je omezený - 8 bitový systém: -128 až +127 - 16 bitový systém: -32 768 až +32 767 Pro reprezentaci desetinných čísel a pro zvýšení rozsahu je použita reprezentace s plovoucí řádovou čárkou (Floating-point) Tri základní formáty: - jednoduchá přesnost – Single precision – 32 bitů - dvojitá přesnost – Double precision – 64 bitů - rozšířená přesnost – Extended precision – 80 bitů Formát binárního čísla se skládá ze tří částí: - znaménkový bit – S - 1 bit – 1=záporné - exponent – E – 8 bitů - mantisa – M – 23 bitů Mantisa: Reprezentuje nejdůležitější bity kódovaného čísla. Hodnota je normována, desetinná čárka je přesunuta za první nenulovou číslicí. Z desetinné části se pak vybere mantisa. Exponent Může vyjádřit jak kladný, tak i záporný exponent. K dané hodnotě je vždy přičtena konstanta 127, proto je výsledná hodnota ve formátu floating-point vždy kladná
3.Řízení datové komunikace po sběrnici v mikroprocesorovém systému Bit – zkratka „Binary Digit“, tj. symbol v binární soustavě Paměťová buňka – zařízení nebo elektrický obovod pro uchování hodnoty 1 bitu Paměťové slovo – množina paměťových buněk určité velikosti Pamět – součástka, umožňující uložení programu nebo dat v binární podobě. Soubor určitého počtu paměťových slov Registr – skupina paměťových buněk k uložení binární informace Šířka registru – počet bitů v registru Registrový pár – dvojice registrů Pin – vodič vivedený vně součástky Port – skupina pinů, umožňující vtsupně/výstupní komunikaci mikrokontroléru s okolím Sběrnice – skupina vodičů umožňující propojení vstupů a výstupů několika zařízení, registrů Komunikace mezi zařízeními - Typická komunikace uvnitř mikrokontroléru, ale i mezi mikrokontrolérem a zařízeními probíhá po paralelním vedení tj. po sběrnici (8 bitový systémů tvořena zpravidla 8 vodiči) - Všechna zařízení obsahují 8bitový vstupně/výstupní port, pomocí něhož jsou připojena na jedinou skupinu vodičů – sběrnici. Nejedná se tedy o spojení point-point. - Aby byly eliminovány kolize na sběrnici, kdy několik zařízení vysílá současně – stav na sběrnici je dán kombinací více signálů, data jsou „nečitelná“ – se používají systémy s tří-stavovými výstupy, příp. oddělovací bufery s třístavovým výstupem - Tří-stavový výstup je řízen povolovacím vstupem (ENABLE), který zajistí aktivaci vždy jen jednoho zařízení, výstupy ostatných ve stavu vysoké impedance Tří-stavový výstup – Philips 74HC125 Výstupy obsahují kromě stavu HIGH a LOW také stav vysoké impedance. Řízení režimu pomocí řídícího signálu ENABLE. Popis činnosti: - E=1: výstup ve stavu vysoké impedance – výstup se chová jakoby fyzikcy odpojený od sběrnice - E=0: bufer pracuje v normálním režimu, tj. výstup X je napeťový ekvivalent vstupu A Tří-stavové obvody jsou již obsaženy v klopných obvodech, registrech, paměťových součástkách, a téměr ve všek mikrokontrolérech. Rozšíření sběrnice Běžně se používá větší počet registrů než 3. Obecně lze na sběrnici připojit libovolný počet registrů. Zvyšuje se tím ale počet řídicích signálů OE, IE a vstupně/výstupní vodičů. Princip: - jeden registr (zařízení) má aktivovány výstupní obvody a zapisuje data na sběrnici - jiný registr (zařízení) má aktivovány vstupní obvody, čímž může data ze sběrnice číst - při aktivní hraně hodinového signálu dojde k zápisu dat do registru Šířka sběrnice je dána šírkou datového slova, přenášeného systému (8bitové slovo=8 vodičů) Obousměrná sběrnice: má vstupy i výstupy napojené na shodný vodič datové sběrnice, např. Adresní sběrnice: přenáší n-bitovou adresu z mikroprocesoru do paměti. Čtení, zápis z/do paměti musí být doprovázen příslušným řídicím signálem Datová sběrnice:obousměrná 8bitová sběrnice (u 8 bitový systémů) pro přenos dat do/z paměti. Datová sběrnice nemusí obsahovat „jen data“, ale také instrukce, které mají být vykonány Řídicí sběrnice: je skupina všech časovacích a řídících signálů, nutný pro korektní synchronizaci operací mikroprocesoure s ostatními součástmi systému.(READ/WRITE, ENABLE)
4.Instrukční soubor mikroprocesorových sytémů. Obsluha přerušení Od von Neumannovy archtektrury je mikroprocessor řízen programem, který je tvořen posloupností instrukcí v binární podobě, tj, instrukce je číselně vyjádřený pokyn. Instrukce jsou uloženy v programové paměti, jsou načítány a vykonávány sekvenčně, tj. jak jak jdou po sobě. V mikroprocesorové technice obsahují instrukce dvojí informaci - jaká operace má být vykonána - adresa operandů, se kterými se má pracovat Každý typ mikrokontrolérů obsahuje jinou instrukční sadu, neexistuje jedna instrukční sada pro všechny mikrokontroléry. Základní formáty instrukcí: 1, 2 a 3bytové Jednobytové instrukce - jednobytové instrukce informují pouze o op kódu - nepoužívají se žadné operandy, není tedy možné přístupovat k pozicím v paměti. Je ale možné rozlišovat „adresu“ registrů - příklady: CLR A – nuluje všechny bity v akumulátoru Dvoubytové instrukce - dvoubytové instrukce obsahují 8bitový op kód (tj. typ operace) a 8bitovou adresu operandu - příklady: MOV A,direct – přesune obsah paměti na adrese direct do akumulátoru A Tříbytové instrukce - Obsahují 8bitový op kód a 16 bitovou adresu operandu. Jedná se o totožný případ, jako u 2 bitových instrukcí, jen is tím rozdílem že adresa operandů je 16 bitová - příklady: JMP adresa – nepodmíněný skok na adresu Struktura instrukcí RISC procesorů Mikroprocesory s architekturou typu RISC mají konstatní délku všech instrukcí. Umožňuje to rychlejší dekódování instrukcí a tím i zvyšování početního výkonu programu. - příklady: RET – návrat z podprogramu, LDI Rd,K – naplnění registru Rd 8 bitovou konstantou K Obsluha přerušení Běh programu je ovlivnitelný pomocí tzv. přerušení. V případě že mikroprocesor obdrží žádost o obsluhu povoleného přerušení, musí přerušit vykonávanou činnost a spustit příslušný obslužný program. Každý procesor obsahuje sadu možných přerušení interních i externích, zdroje přerušení závisí na hardwarovém vybavení. Obsluha každého přerušení je ovládána tzv. vektorem přerušení v programové paměti, jedná se o adresu od které se začne vykonávat konkrétní obsluha. Každý přerušení má svůj povolovací bit, navíc existuje jeden globální povolovací bit. Jednotlivé přerusšení mají různou prioritu, nižší adresa = vyšší priorita Fáze přerušení: 1.fáze: dokončí se výkon právě vykonávané intrukce. 2. fáze: zakáže se obsluha případných následujících přerušení. 3. fáze: do zásobníku se uloží adresa následující instrukce v programové paměti (zásobník musí být definován). 4. fáze: podle zdroje přerušení se do Program countertru načte adresa obslužného programu přerušení. 5. fáze : vykoná se obsluha prerušení. 6. fáze: obsluha přerušení se ukončí instrukcí RETI (return interrupt). 7. fáze : povolí se obsluha dalších přerušení. 8. fáze: do PC se načte návratová adresa ze zásobníku. 9. fáze: pokračuje se ve výkonu hlavního programu (na místě než přišel požadavek na přerušení
5.Programátorský model procesoru. Způsoby větvení programu. Princip návratu z podprogramu / obsluhy přerušení Programátorský model Programátorský model mikrokontroléru (nebo také softwarový pohled na MCU) obsahuje popis paměťového prostoru MCU, soubor registrů, jejich názvy, adresy a funkce, které může programátor využívat. Paměťový prostor AVR - oddělené pamět pro program a data (Harvardská architektura) - vnitřní a vnější adresní prostor - SRAM: 32 obecných pracovních registrů, 64 I/O registrů, které řídí periférie MCU, libovolně použitelná paměť - EEPROM: časově náročnější přístup než SRAM, nemaže svůj obsah, uchování nastavení přístroje Vstupně / výstupní registry AVR Slouží k řízení jednotlivých periférií i samotného jádra mikrokontroléru Stavový registr SREG Příznakové bity (flag) informují o typických výsledcích poslední aritmetické, logické, příp. bitové operace. Jsou nastavovány a nulovány aritmeticko logickou jednotkou (ALU) příp. datovou sběrnici. Jsou uloženy ve stavovém registru. C (carry flag) – příznak přenosu pro poslední aritmetické operaci nebo bitovém posuvu Z (zero flag) – příznak nulového výsledku aritmetické, logické operace, příp. bitového posuvu N (negative flag) – MSB výsledku = 1, V (overflow flag) – příznak přeteční při počítání se znaménkovými čísly, S (sign flag) – informuje, zde je výsledek znaménkové číslo H (half carry flag) – příznak tzv. pomocného nebo polovičního přenosu z nižšího niblu do vyššího, T (transfer bit), I (global interrupt enable) – povolení všech přerušení Větvení programu Podle von Neumannovy koncepce procesoru jsou instrukce vykonávány sekvenčně, tj. jak jsou uloženy v paměti. Adresu instrukce, která se bude vykonávat specifikuje programový čítač ( PC – program counter). Při startu systému je hodnota PC vynulována. Dále je zpravidla pouze inkrementována. Při podmínkách, nepodmíněných skocích, volání podprogramu, obsluze přerušení dochází ke skokové změně hodnoty PC, tj. k větvení programu. K hodnotám PC nelze přímo přístupovat, protože tento čítač nelze adresovat. Změnu hodnoty provádíme pouze nepřímo – vykonanými instrukcemi. Princip návratu z podprogramu/obsluhy přerušený: podprogram je část kódu, která se často opakuje, do strojového jazyka se přeloží jen jednou. Spouští se zapsaním adresy první instrukce do programového čítače. Návrat z podrogramu: vyzvednutí návratové adresy ze zásobníku, a její zapsání do PC (RET). Návratová adresa musí být uložena před skokem do podprogramu do tzv. zásobníku SP (stack pointer). Návratová adresa je adresa instrukce následující po instrukci volající podprogram. Na rozdíl od (ne)podmíněného skoku doje po ukončení podprogramu k návratu na intrukci následující po skoku do podprogramu. Zapisovat/číst lze ze zásobníku pouze z jedné pozice. Tu udává tzv. ukazatel na zásobník (stack pointer).
6.Postup a rozdíly ve vývoji aplikací v jazyce symbolických adres a pomocí vyšších programovacých jazyků. Kombinace obou jazyků Postup překladu zdrojového kódu Řídicí jednotka pracuje s binárně vyjádřenými pokyny – strojový kód. Psát aplikace přímo ve strojovém jazyce je nepřehledné, neefektivní, složité – využívá se symbolický zápis (JSA). Převod z JSA do strojového kódu provádí asembler – program, který každou instrukci nahradí binární posloupnosti, podle definovaných pravidel. Program je v uložen v binární podobě, pro přehlednost se ale zapisuje v hexadecimální soustavě. Zdrojový kód může obecně obsahovat 4 typy zápisu: Direktivy překladače: nejsou překládány do strojového kódu, pouze informují asembler jak vytvořit strojový kód. Začínají tečkou. (.byte, .def, .macro) Proces překladu do strojového jazyka Elementární zásady jazyka C - příkaz končí středníkem - těla funkcí, posloupnosti příkazů u podmínek, cyklů, apod. se združují do složených závorek - řetězce se uvozují uvozovkami - komentáře se píší za dvojité lomítko - rezervovaná slova nelze použít k jinému účelu než je určeno (for, return, if, else)
Kombinace jazyka symbolických adres a C - programování ve vyšším jazyce je pohodlnější, rychlejší, kód je snáze přenositelný mezi platformami, zabírá více místa v paměti, jeho výkon je pomalejší - běžná praxe je tvorba aplikace v jazyce C, pouze exponované části programu, kde chceme mít přehled o počtu instrukcí, rychlosti výkonu, či konkrétní funkci se tvoří v JSA - proto lze zdrojové kódy kombinovat - předávání parametrů mezi funkcí v JSA a hlavní aplikací v C pomocí předem určených registrů
7.Struktura a využití základních periférií mikrokontrolérů, např. vstupně/výstupní port, čítač/časovač, A/D převodník apod. Vstupně / výstupní port – I/O (paralelní) port - I/O port obsahuje vstupně/výstupní piny, které zajištují komunikaci s externím „světem“ - Jsou to nejvšestranější I/O zařízení mikrokontroléru - Počty pinů korespondují s použitím mikrokontroléru – ATmega16 – 32 I/O pinů - U mikrokontrolérů AVR jsou ke každému obousměrnému I/O portu asociovány 3 I/O registry o Směrový registr DDRx Hodnota 0 = pin je definován jako vstupní Hodnota 1 = pin je definován jako výstupní o Datový (výstupní) registr PORTx v případě definovaného výstupního pinu, udává hodnota bitu v registru logickou úrověn na pinu. Hodnota 1 = pin je na vysoké úrovni o Vstupní piny PINx Udává hodnota bitu v registru aktivaci/deaktivaci pull-up rezistor Každý pin obsahuje přepěťovou ochranu (omezující diody) a možnost připojení pull-up rezistoru Čítač / časovač - Každý mikrokontrolér obsahuje periférii umožňující odečítat čas (časovač, anglicky: timer), příp. načítat vstupní pulsy (čítač, anglicky: counter) - Toho lze využít k jednoduchým aplikacím o Měření krátkých intervalů, periodické spouštění funkce o Konstrukce jednoduchých frekcenčních čítačů Obě funkce využívají registry, jehož obsah se inkrementuje pomocí hodinového, příp. externího signálu. Lze tak využít 8, 16 bitové čítače / časovače - Čítač / časovač je 8 bitový registr schopen inkrementovat svou hodnotu. K čitače / časovače lze přistupovat pomocí registrů o TCNT0 (timer/counter) – datová hodnota č/č o OCR0 (output compare registr) – řídící registr - při přetečení č/č (dosažení maximální hodnoty a znovu návrat k 0) i při rovnosti hodnoty s komparačním registrem je možné generovat přerušení - č/č může být řízen vnitřním zdrojem hodinového signálu, nebo externím signálem přes pin T0 - Funkce porovnávání: obsah registru OCR0 je neustále porovnáván s TCNT0. Jestliže se obsahy obou registrů rovnají, lze generovat přerušení. Komparace lze snadno využít ke generování signalů A/D převodník - mikrokontrolér umožňuje zpracovávat analogové signály pomocí A/D převodníku a komparátoru - A/D převodník převádí velikost analogového vstupního napětí na nbitovou digitální hodnotu - ATmega16 – 8 kanálový převodník – piny PA0 až PA7 - vstupní úroveň je brána buď vůči zemi GND, případne lze převádět diferenční hodnotu dvou vstupních kanalů a to včetně nastavitelného zesílení - z důvodu nižšího odběru je AD převodník defaultně vypnut. Pro použití je tedy nutné ho povolit
-
-
-
výsledek AD převodu je reprezentován 10 bity v datových registrech ADCH a ADCL ve formě dvojkového doplňku, protože výsledkem může být záporný při čtení převedené hodnoty z registrů je po přečtení hodnoty z ADCL zakázán zápis do obou datových registrů (do doby než je přečtena také hodnota z ADCH pracovní režimy A/D převodníku: o jednoduchý převod – Single Conversion: převede se jen jeden vzorek, poté je převod zastaven o automatické spouštění – Auto Triggering: speciální událost může zahájit AD převod. Převod je zahájen nábežnou hranou vybraného signálu, pokud přijde nová nábežná hrana a převod není dokončen, pak je ignorována. Umožňuje zahájení převodu v konstatních intervalech o volný běh – Free Running – převod je prováděn neustále po dokončení AD převodu je výsledek zapsán do datových registrů AD převodníku, tj. do ADCH:L. Je možné generovat přerušení. A/D převodník potřebuje pro 10 bitový převod hodinový signál o frekvenci od 50 kHz do 200 kHz o Řídící frekvence může být větší, pokud je postačující nižší rozlišení než 10 bitové o A/D převodník obsahuje předděličku ke generování vhodné prekvence doba dokončení AD převodu závisí na zvoleném režimu, přičemž převod první hodnoty trvá déle než všechny následující. Celková doba převodu se skládá z doby navzorkování a samotného převodu o navzorkování prvního vzorku vstupního signálu trvá 13,5 AD cyklů, ostatních jen 1,5 AD cyklů
8.Sériová asynchronní komunikace. Komunikační protokol sběrnice I2C V sériové komunikaci mezi mikrokontrolérem I/O zařízením se používají dva typy přenosů: asynchronní a synchronní Asynchronní - vysílač může posílat data v libovolném okamžiku s libovolně dlouhou pauzou mezi vyslanými daty (tj. doba, kdy vysílač nevysílá neí pevně dána) - hodinový signál přijímače nemusí být synchronizován s hodinovým signálem vysílače Synchronní - vysílač nepřetržitě vysílá do přijímače - data jsou obvykle posílána ve skupinách, tzv. blocích. Jednotlivé bloky jsou odděleny synchronizačními symboly - synchronizační symboly slouží k synchronizaci hodinového signálu přijímače s vysílacím zdrojem - pokud vysílač nemá žadná data k vysílání, vysílá jen synchronozační symboly Asynchronní přenost dat - většina sériových přenosů v mikroprocesorové technice je asynchronních - sériový datový signál je rozdělen na časové intervaly pro jednotlivé bity (TB – bit time) o v těchto intervalech nabývá signál buď log.1 nebo log.0 o ke změně stavu může dojít jen na začátku nebo na konvi časového intervalu TB - při asynchronní komunikaci mezi dvěma zařízeními je struktura přenášeného signálu pevně dána o start bit (vždy logická nula) o 5 až 9 datových bitů, reprezentují přenášenou informaci, nejméně důležitý bit LSB je vysílán jako první o Volitelný paritní bit pro možnost detekce chyb během přenosu, používá se lichá i sudá parita o Stop bit, lze použít 1, 1,5 nebo 2 stop bity, vždy logická jednička
Sériová sběrnice I2C – komunikační protokol - I2C komunikační protokol umožňuje propojení až 128 zařízení pomocí dvou obousměrných vodičů o Datový kanál SDA (synchronous data), pin PC1 o Hodinový signál SCL (synchronous Clock), pin PC0 - každý vodič sběrnice obsahuje pull-up rezistor, tj. vysoká úroveň v klidovém stavu
-
-
všechna zařízení připojená na sběrnici musí mít individuální 7bitovou adresu a implementovaný mechanizmus komunikace pomocí I2C sběrnice o obsahuje komunikační protokol o realizován pomocí dvojice vodičů o neumožňuje duplexní přenos, v jednom okamžiku vysílá jen jedno zařízení zařízení obsahují výstup s otevřeným kolktorem, nebo tří-stavový výstup nízká úroveň je na sběrnici generována jen v případě, kdy jedno nebo více zařízení nastaví svů výstup na log.0 vysoká úroveň na sběrnici je způsobena výstupy zařízení v log.1, příp. ve stavu vysoké impedance (zajistí pull-up)
Komunikační protokol - typy zařízení na sběrnici o Master: zařízení, které zahajuje/ukončuje komunikaci a generuje hodinový signál SCL o Slave: podřízení, adresované masterem - počet připojených zařízení je limitován pouze celkovou kapacitou sběrnice, nebo 7bitovou adresou podřízených obvodů - komunikace je zahájena událostí Start, ukončena Stop (zajišťuje Master). Existují adresní a datové rámce Komunikační módy sběrnice I2C - MT (master transmitter) – master vysílá - MR (master receiver) – master přijímá - ST (slave transmitter) – slave vysílá - SR (slave receiver) – slave přjímá
9.Struktura a funkce polovodičových pamětí ROM a RAM Paměti ROM (Read Only Memory) - pro aplikace s velkým počtem operací čtení - zpravidla jen jedna operace zápisu a to při výrobě paměťové součástky - případný zápis je výrazně komplikovanější - všechny paměti typu ROM jsou „nonvolatile“, tj. paměti si svů obsah pamatují i po odpojení napájecího napětí Paměti RWM (Reas Write Memory) - libovolné paměti, ze kterých se může číst i zapisovat se shodnou náročností Kombinované paměti - WOM (Write Only Memory), WORM (Write Once Read many Times Memory) – CD ROM Paměti RAM (Random Access Memory) - doba čtení i zápisu je shodná pro všechna slova paměti, tj. doba vykonání operace není závislá na fyzické poloze slova v paměti - STATICKÉ – data jsou uchována pokud je přitomno napájení - DYNAMICKÉ – data je potřeba periodicky obnovovat (refresh) Paměti SAM (Sequential Acces Memory) - doba přístupu závisí na pozici adresované buňky, tj. mnohem delší než u RAM - nalezení slova předchází projití všech slov předešlých (mag. páska) Paměti typu ROM - pro aplikace, kde jsou data uložena „napořád“, nebo jsou jen „občas“ měněna (kalkulačky) - jsou „nonvolatile“, proto jsou programy zachovány i po odpojení napájení - během běžného provozu, žadná nová data nemohou být do paměti zapsána, pouze z ní čtena - do některých pamětí ROM jsou data nahrána ji během výroby, jiné možné programovat - některé paměti ROM mohou být naprogramovány pouze jednou, jiné mohou být smazány a přeprogramovány Zapojení paměti ROM: obsahuje tři typy signálů: adresní vstupy, řídící vstupy a datové výstupy. Datový výstup je nejčastějí 4, nebo 8bitový a je tvořen otevřeným kolektorem nebo třístavovým výstupem.
EPROM – mazatelné a programogramovatelné paměti ROM - mohou být mazány a přeprogramovány uživatelem - jedná se o paměť typu nonvolatile (pamatují obsah) - paměťová buňka EPROM je tvořena MOS tranzistorem s plovoucím hradlem Programování paměti: přivedením vysoké napětí (10 až 25 V) mezi G a D na dobu cca 50 ms/ byte způsobí injekci elektronů s vysokou energií do oblasti plouvucího hradla. Elektrony zde zůstanou „uvězněny“ i po odpojení napájení, tranzistor je sepnut. Mazání paměti: provádí se ultrafialovým světlem, které dopadá na oblast po dobu cca 15 až 20 min. UV záření způsobý optický proud elektronů z hradla do křemíkového subtrátu,
tj. odvede náboj. Pouzdro součástky musí obsahovat okénko v keramickém pouzdru. Smaže se celý obsah. EEPROM – elektricky mazatelné pamětí ROM - odstraňují nevýhody EPROM - paměťová buňka je podobná buňce EPROM, ale obsahuje velmi tenkou vrstvu oxidu kolem D MOSFET tranzistoru, ta způsobuje elektrickou mazatelnost. - Programování je totožný jako u EPROM - Mazání se provádí napětím opačné polarity -Uprog mezi G a D. - Lze mazat a přeprogramovat jednotlivé byty odděleně. - Rychlost zápisu je větší (5ms/byte) než u EPROM (50ms/byte) - 1 MB EEPROM vyžaduje přibližne 2x více křemíku než 1MB EPROM Pamětí typu Flash - snaha o nonvolatile pamět s možností programování v systému, s vysokou kapacitou a nízkými náklady a s krátkou dobou přístupu pro čtení - paměti Flash mají buňku podobnou jedno-tranzistorové verzi EPROM, ale jsou nepatrně větší - obsahují tenčí vrstvu oxidu kolem hradla, což má za následek elektrickou mazatelnost - nižší finanční náklady na výrobu než u EEPROM ale nedosahují hodnot EPROM - rychlost čtení/zápisu 10µs/byte - základní operace uvnitř paměťové součástky jsou: čtení, mazání, kontrola mazání, zápis, kontrola zápisu Pamětí typu RAM -
umožňují přístup pro čtení/zápis ke všem pozicím za stejnou dobu - slouží dočasnému uložení programu i dat - z důvodu častého přepisování obsahu při běhu programu je nutná vysoká přístupová rychlost – hlavní výhoda je stejná složitost operací pro čtení i zápis - paměti jsou volatile (bez napájecího napětí jsou uložená data ztracena Statické paměti RAM (SRAM) - uchovávají informaci pokud je přítomno napájecí napětí - Elementární buňka – klopný obvod, který udružuje požadovaný stav (bipolární a unipolární) - Použití jako interní pamět mikropočípačů Dynamické paměti RAM (DRAM): jsou tvořeny MOS technologií a vyznačují se vysokou kapacitou, nízkým odběrem a průměrnou rychlostí. Informace je uchováná v podobě náboje v kapacitoru. Má tendencí se vybíjet, proto nutný tzv. refresh, tj. opakovaný zápis dat (typicky každých 2, 4 nebo 8 ms). Cca 4x jednodušší než SRAM a náklady na výrobu taky 4x nižší.
10. Metody zvyšování početního výkonu procesorů Vývoj v mikroprocesorové technice se ubírá dvěma směry, první dosahuje extrémních výkonů (PC), kdy využitelné jsou pouze poslední produkty a druhý směr usiluje o nízkou spotřebu, cenu, omezený výkon. Způsoby zvyšování výkonu - pomocí odlišné výrobní technologie o vyšší hustota integrace umožňuje konstrukci většího počtu prvků na jednotku plochy o menší parazitní kapacity mezi vodiči/prvky, což způsobuje menší přepínací ztráty a současně kratší dobu přechodného děje o může růst frekvence hodinového signálu – výkon celé součástky závisí na fCPU o větší čistota křemíkového substrátu umožňuje konstrukci větších čipů o více elementárních prvků na čipu způsobuje také větší ztrátový výkon o ztrátový výkon lze snížit snížením napájecího napětí - pomocí funkční struktury o na 1 čip se umístí mikroprocesor + pamět + periférie (např. mikrokontrolér) o celý mikropočítač obsahuje několik málo součástek, přičemž každá z nich maximálně využívá velikost křemíkového substrátu v důsledku rozšíření datové i adresní sběrnice o umožňuje to zpracování větších operandů, protože šířka sběrnice udává jak velké číslo může být přeneseno do/z procesoru během jedné operace - rozšíření mikrokontrolérů na 16 a 32bitové o šířka slova udává maximální hodnotu kterou dokáže mikroprocesor zpracovat během jedné operace. Hodnoty větší je nutné nejprve rozdělit a následně počítat v několika krocích. - přechod na paralelní činnost o umístění většího počtu ALU jednotek do procesoru o možnost výkonu většího poštu instrukcí současně o řídící jednotka umožňuje načtení většího počtu instukcí a následně je přeskládá pro efektivnější výkon - použitím instrukční sady CISC o vytvoření nových, výkonnějších instrukcí např. pro aritmetické operace o velký počet instrukcí je výkonný, ale jsou kladeny větší nároky na překladače z vyšších programovacích jazyků o řídící jednotka mus být složitá, aby dosáhla veškeré instrukce - požití instrukční sady RISC o několik desítek jednoduchých instrukcí, jejíž výkon zpravidla trvá 1 strojový cyklus o řídící jednotka může být jednoduchá a tudíž rychlá o nízké nároky na překládací programy z vyšších programovacích jazyků - použití zřetěženého výkonu instrukcí – pipelining o zřetězení intrukcí (pipelining) vychází ze skutečnosti, že zpracování každé instukce lze rozdělit do několika fází F (fetch) – načtení z programové paměti nebo z vyrovnávací paměti cache D1 (decode1) – dekódování instrukce, určí se její typ D2 (decode2) – výpočet adresy operandů E (execution) – vlastní provedení instrukce W (write) – zápis výsledků operce
o každou z fázi lze provést pomocí samostatné jednotky. Po skončení úkolu předá jednotka svůj výsledek následující jednotce a sama zpracovává instrukci následující o vykazuje větší využití sběrnic a velmi výkonné zvětšení výkonu Pipelining Při klasickém zpracování instrukcí dochází ke kompletnímu výkonu jedné instrukce než se začne vykonávat instrukce druhá. Dvě instrukce se tak vykonávají za 10 taktů procesoru. Při zřetězeném zpracování je během 10 taktů vykonáno 6 instrukcí a následující jsou rozpracovány v různých stupních. Při každém dalším taktu je tak dokončena vždy jedna instrukce