Charakteristika mikrořadičů typu RISC ( např. PIC ) a DSP
Architektura RISC
Architektura byla definována začátkem 80. let americkým vědcem Pattersonem. Ten vyvinul prototyp počítače, který vystačil jen s 30 typickými instrukcemi. RISC počítač musí ke zvládnutí stejné úlohy z důvodu malého souboru instrukcí pracovat s tímto souborem častěji než konvenční typ CISC počítač, ale díky většímu počtu registrů může vlastní program proběhnout výrazně rychleji, protože velké množství operací se koná přímo mezi registry a pamětí. RISC procesor má až 100 registrů.
Hlavní vlastnosti architektury RISC je, že umožňují vysokou propustnost dat a mají malý počet jednoduchých instrukcí. Instrukce s pevnou délkou a s pevným formátem, jednocyklový příkazový režim a díky internímu režimu pipeling překryvné provádění po sobě jdoucích instrukcí. Hlavní nárůst rychlosti RISC počítačů byl dosažen použitím velkého množství instrukcí. Tím, že odpadly mikroprogramy, mohla být uvolněna celá oblast na povrchu čipu, která byla využívána pro mikroprogramy a použita pro velmi rychlou paměť, v tomto případě pro sadu registrů.
Počítače RISC se vyznačují vysokou rychlostí, ale i silnou orientací na operační systém UNIX. Výrobci RISC se zaměřili na zpracování stanice a superminipočítače pro vědeckotechnické aplikace jako automatizace laboratorních prací nebo CAD a také na automatizaci v kanceláři. Zavedením speciálních koprocesorů se vyřešili některé nedostatky u systémů RISC, jako např. výpočty v pohyblivé řádové čárce.
RISC se uchyluje k jednomu – vyšší výkon počítače a tento vyšší výkon dosahuje použitím malého počtu instrukcí relativně jednoduchých, ale obzvláště rychlých.
Charakteristický rys architektury RISC je základní požadavek provádění instrukcí v jednocyklových taktech. Ostatní znaky jsou jen důsledkem této podmínky. Z důvodů jednotaktového zpracování musí být RISC procesor hardwarově kódován. Pro každou instrukci musí existovat vlastní funkční blok. Při jednotaktovém zpracování nejsou operandy v paměti, protože pro přístup do paměti je zapotřebí více než jeden. Proto jsou pokud možno všechny operandy uloženy v registrech.
Vzhledem k tomu, že jsou hardwarově kódovány, vyžadují řadič, který řídí průběh jejich činnosti.
Další důležitý rys pojetí RISC je překrývání prováděných vnitřních instrukcí. Instrukce se čte do tzv. PIPELINE, dekóduje se, dále se čtou operandy, provádí se vlastní funkce instrukce a ukládá se výsledek. Přitom v jedné PIPELINE může být současně více instrukcí v různých, časově posunutých fázích.
Protože při jednotaktovém průběhu instrukce nedochází k žádným ztrátám strojových cyklů využije se plná výkonnost procesoru. Současně dovoluje jednoduchá struktura vyšší frekvenci hodinových impulsů a tím také další zvýšení rychlosti.
RISC procesory disponují extrémně jednoduchou sadou instrukcí. Nemají komplikované způsoby adresování. Sada RISC je poměrně malá, obsahuje okolo 30 až 40 instrukcí. Přístup do paměti je realizován dvěma různými způsoby, buď se čte nějaká hodnota z paměti do registru (LOAD), nebo se nějaká hodnota zapisuje z registru do paměti (STORE). Z toho vyplývá, že RISC procesory nedisponují takovými instrukcemi, které například umožňují přičtení nějaké hodnoty z paměti k obsahu registru.
Mikrořadiče RISC
Mikrořadiče typu RISC jsou velmi časté a tvoří celé rodiny základního (jádra) mikrořadiče a jeho klonů. Nejznámější jsou např. od firem ATMEL, který je budován na jádře mikrořadiče 8051, nebo od firmy MICROCHIP, která vytvořila široký sortiment mikrořadičů PIC. Tyto mikrořadiče jsou navrženy důsledně podle harwardské koncepce počítačů – tedy jejich instrukce mají pevnou délku, pevný formát OZ a AČ a jsou jednocyklové, vlastní mikrořadiče mají oddělené paměti programu a dat se samostatnými sběrnicemi pro každou z pamětí. H.K. umožní překrývání instrukcí – jednoduché proudové zpracování. Hlavní charakteristické rysy se dají definovat na jednom z nejčastějších mikrořadičů PIC 16C71 a 16C84 (lépe 16Cxx).
Má základní paměť programu EPROM nebo EEPROM či FlashEPROM o velikosti 1K slov, přičemž registr PC je 13b. a umožní adresovat až 8K slov. Zvláštností je možnost modifikovat reg. PC Low např. výsledkem z ALU. Šířka slova je 14b., instrukce má pevnou strukturu – 7b. OZ a 7b. přímá data nebo přímá adresa. Zásobník má hloubku 8 a šířku 13b. (jako reg. PC). Z registru RI odchází ke zpracování OZ do dekodéru DI a data/adresa do ALU/adresového registru.
adresa význam
0000 „vektor“ RESET (3B)
0004 vektor přerušení INT
0005 paměť programu
03FF až
0400 začátek (někdy neimplementované) volné paměti
1FFF až
Pamět dat se skládá až ze 4 stránek o velikosti 128B, každá stránka obsahuje sadu registrů SFR (na některých adresách je jiný význam registru podle operace čtení / zápis), pole univerzálních registrů (36B) a volné registry (nemusí být implementované!). Na stránky – pokud jsou implementované – ukazují 2 bity z registru (P)SWR, který obsahuje stavové bity (C, HC, Z) a řídící bity (výpadek napětí, překročení WDT, atd). Ve stránce lze adresovat i nepřímou adresou, to když se použije 8b. reg. FS, výběr stránky zajistí jeho MSb spolu s bitem z SWR.
stránka 00 01 10 11
adresa význam
00 12B -„- x x
0B SFR
0C pole 36B jen ve stránce 00
2F SRAM
30 volné reg. –„- x x
7F nebo x
ALU má vždy jeden operand v pracovním registru W a druhý operand je uložen v poli 36 registrů RAM. Umí zpracovat podle cca 35 instrukcí („nejmenší“ PIC má 25 instrukcí, „nekvětší“ okolo 100), ALU pracuje hlavně s registry.
Systém přerušení – 4 zdroje, maskovatelné (vnější INT alternativně na vývodu RB0, přetečení čítače RTCC, ukončení převodu v A/D převodníku, změna stavu na libovolném vstupu RB4-RB7).
Watch dog timer je volě běžící čítač s vlatním zdrojem kmitočtu – vnitřní RC oscilátor, který se dá ovládat pomocí konfigurační EEPROM (64B) – paměť dat typu konstanta. Délka periody je min. 7ms, max. 33ms, s možností protažení pomocí předděliče na 2,5s.
Porty: binární 8b. port RB7 – 0 je klasický obousměrný
analogový 5 vstupový port RA4 – 0 s možností binárního použití V/V (tyto vývody se řídí z konfigurační paměti EEPROM). Analogový vstup je opatřen vzorkovačem Sample + Hold s min. dobou periody vzorkování pro 5V 12µs.
Čítač / časovač používá na vstupu Schmidtův překlápěcí obvod, který tvaruje hrany signálu (vč. sinusového). Generátor hodinového taktu mikrořadiče se modifikuje pamětí konstant EEPROM na „krystalový“ oscilátor nebo laciný RC oscilátor a vnější hodiny. Obvod Resetu má také vstup s tvarovačem – SKO a nazývá se MasterCLeaR.
Napájení : varianty pro „bateriový zdroj“ 3 až 6V nebo 4 až 7V
DSP
Zpracování analogových signálů přechází z ryze analogových forem k digitálnímu zpracování (pokud je to vhodné). Rozvoj technologií výroby io umožnil umístění analogových i číslicových obvodů na jednom čipu a vznik digitálních signálových procesorů (DSP). Výhody číslicového zpracování signálů jsou:
*stálost zařízení a minimalizace / odstranění setrvačných prvků (L, C) a jejich vliv na změny parametrů
*možnost přizpůsobení konkrétním požadavkům na zpracování signálu programovatelnou digitální částí
*realizace náročných způsobů zpracování a zvýšená rychlost tohoto zpracování.
Jedním z nároků je nutnost A/D a D/A převodu, což vzhledem k širokému dynamickému rozsahu analogových signálů vyžaduje (min.) 16b. šířku slova. Princip zpracování je např.:
X(t) à filtr Dolní Propust à A/D à číslicové zpracování à D/A à filtr DP à Y(t)
Prvním výrobcem DSP se stal Intel s I 2920, který se vyznačoval 25b. násobením, 10b. převodníky a multiplexovanými vstupy a výstupy. Dalším významným výrobcem a konkurentem je TI se svou úspěšnou řadou TMS 320xx.
Signálový procesor je tedy procesor, jehož architektura a instrukční soubor byl navržen s ohledem na realizaci metod číslicového zpracování signálu v oblastech:
-číslicová filtrace
-spektrální analýza – FastFourrierTransform.
-komprese signálu v reálném čase. Pak logicky dochází k nejčastějšímu použití v modemech, kodecích, mobilech, měřících přístrojích, zvukových kartách, programovatelných filtrech (0,0001 Hz až 1 MHz) apod.
Základní rysy DSP jsou:
-rychlá interní paměť programu (ROM i RAM)
-rychlá interní paměť dat (RAM)
-výkonná ALU (instrukční cyklus desítky ns, instrukce násobení v 1 instr. cyklu, výkon desítky MIPS)
-výpočty s pevnou řádovou čárkou
-synchronní sériové kanály
-vysoká frekvence vnitřního hodinového signálu – od sta MHz výše.
DSP představuje řešený kompromis mezi nároky na vysoký výpočetní výkon a počet integrovaných periferií (jako vzor slouží 8051). CPU signálových pocesorů obsahuje odlišnou aritmetickou jednotku, která je složená z bloků např. ALU, HW násobička a jednotka posuvů. Toto uspořádání zajistí výrazné změny v instrukční sadě – desítky speciálních instrukcí násobení / dělení a posuvů (násobení jsou přizpůsobeno pro libovolné použití operandů – signed, unsigned), při kterých lze v rámci jedné instrukce ještě přičítat další operand, a až 40b. výsledek, který omezuje problém přetečení, např. ve smyčce s opakovaným násobením. Dále CPU obsahuje adresové generátory, které vytvářejí adresy dvou operandů pro jejich současný výběr (z datové i programové paměti). Při použití generátorů se využívá také technika nepřímého adresování s automatickou změnou obsahu adresových ukazatelů nebo technika kruhových zásobníků s určenou délkou (hloubkou).
Interní paměti programu a dat jsou oddělené, včetně oddělených samostatných sběrnic, což umožňuje paralelní čtení kódu a dat. Data jsou vícebajtová (např. 16b.), programové slovo je 24b. Do takového slova mohou být současně zakódované až 3 operace, které jsou pak současně vykonány. Pokud není paměť programu typu ROM, lze do ní ukládat doplňková data. Externí paměť se připojuje kvůli úspoře vývodů přes společnou sběrnici (vznikne multiplexováním oddělených sběrnic paměti programu a dat), to ale přináší snížení nároků na rychlost při komunikaci s vnější pamětí (prodloužení pracovního cyklu, práce jen bajty – standardně se pracuje s 8b. daty). Velikost interní paměti programu (! typ RAM!) a paměti dat je zhruba v těchto hodnotách: 512*24b. a 256*16b, přes 2K*24b. a 1K*16b. až do 16K*24b. a 16K*16b. Při adresování vnější paměti slouží signály RD a WR doplněné o výběrové signály PMS a DMS nebo odpojovací signály vnější sběrnice BR a BG.
Periferní obvody na čipu jsou reprezentovány především vnitřními hodinami, časovačem, až 2 synchronními sériovými kanály, řadičem přerušení, generátorem stavů „komunikace“ s vnější pamětí, řadičem DMA. Synchronní S-Porty jsou realizované pro rychlou komunikaci mezi DSP a vnější pamětí EEPROM či FlashEPROM, sériových A/D a D/A převodníků pomocí např. I2C busu. Při použití vnějších paralelních EPROM (částečně i vnitřních EPROM) dochází ke zpomalení čtení – to řeší použití čekacího signálu WAIT. Nebo je možné použít vnitřní paměť RAM a do ní uložit část časově kritického kódu a přenést tam běh programu. To samozřejmě vyžaduje doplnit DSP o vnější podpůrné obvody (typ záchytný registr), ze kterých se zavede program do vnitřní paměti programu – takzv. BOOT. S-Portem je připojená sériová komunikace s EEPROM, obsahující konfigurační a kalibrační konstanty nebo komunikace s PC..