1. september, 2019

Reševanje problema velikosti pomnilnika pri načrtovanju grafičnih uporabniških vmesnikov

microchip 300x74 - Reševanje problema velikosti pomnilnika pri načrtovanju grafičnih uporabniških vmesnikovMicrochip Technology Inc
Avtor: Kurt Parker
2019_277_28

Zame je ena izmed najzahtevnejših komponent pri načrtovanju ugnezdene grafike pomnilnik za slikovni medpomnilnik. Ta pomnilnik mora biti dovolj velik, biti mora hiter in poleg vsega mora biti še poceni.

Na žalost se je treba pri izbiri grafičnega medpomnilnika pogosto sprijazniti s kompromisi. V najboljšem primeru se ti kompromisi spremenijo v drage nevšečnosti, ki višajo stroške proizvodnje in manjšajo dobiček. In kar je še slabše, povzročijo lahko potrebo po predaji celotnega projekta zunanjim izvajalcem ali najemanju in usposabljanju novih talentov, da bi na koncu kljub vsem zapletom uspešno zaključili razvoj tega izdelka. V tem članku bomo razpravljali o pomislekih, ki jih lahko prinese uporaba visoko zmogljivega pomnilnika visoke gostote, ki ga zahtevajo ugnezdene grafične aplikacije z uporabo mikrokontrolerjev in kako zmanjšati ali celo popolnoma odpraviti njihov potencialni učinek na delovanje naprave.

277 28 01 300x141 - Reševanje problema velikosti pomnilnika pri načrtovanju grafičnih uporabniških vmesnikovObstaja veliko prednosti, ki govorijo v prid uporabi mikrokontrolerjev (MCU) pri načrtovanju ugnezdene grafike v primerjavi z uporabo arhitekture z mikroprocesorji (MPU). Čeprav je MPU arhitektura nujno potrebna za določeno raven grafičnega uporabniškega vmesnika, lahko v številnih aplikacijah še vedno dosežemo učinek privlačnega in učinkovitega grafičnega vmesnika brez dodatnih stroškov in usposabljanja, ki bi bilo na primer potrebno za realizacijo nekega preprostega stikala. Prednost, ki je morda še najbolj izrazita, je raven integracije, ki jo ponuja standardni mikrokontroler (MCU). Pri tem je pomembna prava odločitev pri izbiri velikosti delovnega pomnilnika (SRAM) in obstojnih (Flash) programskih pomnilnikov, specifično procesno jedro in hitrost delovnega takta, komunikacijski vmesniki ter IO vrata in zunanje analogne naprave. Poleg tega trg ponuja na videz neskončno število naprav, ki ustrezajo večini potreb ugnezdenih aplikacij. Vendar se je treba zavedati, da lahko enostavnost, prostor in prihranki pri stroških naenkrat postanejo za mikrokontrolerje (MCU) pretrd oreh, sploh v primerih, ko ugnezdena aplikacija zahteva grafični uporabniški vmesnik (GUI). Ob takšnih vhodnih zahtevah se večina inženirjev ugnezdenih naprav sprašuje, kako bi MCU vendarle lahko zadovoljil njihove potrebe in ali bi bila mogoče boljša odločitev prehod na MPU arhitekturo, čeprav je ta dražja in občutno bolj zapletena.

Prvi pomislek:
Kako naj bo grafika krmiljena?
Prvi pomislek ob načrtovanju grafike je njeno krmiljenje. Običajno pri ugnezdeni grafiki potrebujemo tri funkcije: prikaz, krmiljenje in shranjevanje. Prikazovanje se nanaša na to, kako je slika ustvarjena in obdelana. Za izvedbo te funkcije bodo projekti na osnovni ravni uporabljali centralno procesno enoto (CPU) mikrokontrolerja. Zmogljivejši mikrokontrolerji z ugnezdeno grafično podporo bodo imeli lastno grafično procesno enoto (GPU), ki bo razbremenila nekatere funkcije upodabljanja, kot je risanje črte ali pravokotnika in polnjenje notranjosti, gibanje likov različnih oblik in manipulacije medsebojnega prekrivanja, imenovane blit. Funkcija krmiljenja grafike se nanaša na to, kako se slika prenese na zaslon. To lahko storite prek enote za neposredni dostop do pomnilnika (DMA), prek zunanjega paralelnega vmesnika na mikrokontrolerju ali z vgrajenim grafičnim krmilnikom. Grafični krmilnik bo dodal še cel kup uporabnih funkcij, kot so prekrivne ploskve in vrtenje, kar pripomore k izboljšani končni podobi grafičnega uporabniškega vmesnika. Končno pa je tudi sposobnost shranjevanja predpogoj, da se nekje hranijo in vedno znova pridobijo informacije o tem, kaj naj bi bilo prikazano. Prav na to se bomo osredotočili v nadaljevanju tega članka.

Drugi pomislek:
Kje bomo shranili sliko našega grafičnega uporabniškega vmesnika?
Danes se v večino visoko zmogljivih mikrokontrolerjev na tržišču vgrajuje integrirani SRAM, ki doseže tja do približno 512 KB. To lahko zadostuje za potrebe krmiljenja preprostih statičnih grafičnih uporabniških vmesnikov, ki zahtevajo samo en vmesni pomnilnik, ali grafični uporabniški vmesniki, ki uporabljajo le osembitno slikovno grafiko izbranih barv in manjše zaslone. Toda treba je slediti trendom na trgu in ta trend kaže, da si končni uporabniki želijo podobno izkušnjo z ugnezdenim grafičnim vmesnikom, kot so je navajeni pri svojih priljubljenih aplikacijah na svojih pametnih telefonih. Poleg tega podjetja želijo, da vsak grafični uporabniški vmesnik natančno predstavi njihovo blagovno znamko in to lojalno in na način, ki spodbuja identiteto njihove blagovne znamke. Gladko prelivanje med bogatimi grafičnimi uporabniškimi vmesniki, večplastno prekrivanje površin in večje barvne globine pa posledično lahko zahtevajo uporabo večjega medpomnilnika. Skratka, če so grafike v aplikaciji zahtevane, so fotorealistične. Vendar pa v primerih, ko se mora barvni odtenek natančno ujemati z določeno barvo neke blagovne znamke, bo potrebno zagotoviti več vmesnega pomnilnika.

Slika 1 prikazuje le nekaj primerov aplikacij GUI, ki vključujejo nekaj prej omenjenih izboljšav. Prvi primer je fotorealistična podlaga, ki v času izvajanja potrebuje okrog 12 MB pomnilnika. Druga aplikacija, uporabniški grafični vmesnik avtomata za kavo, je izkoristila prednosti nekaterih manjših grafičnih ikon, vendar ob tem dobimo tudi več slojev prekrivanja in gibanja. Za takšno grafiko potrebujemo približno 3 MB pomnilnika.

Tretji pomislek
Ali morate res uporabiti ravno zunanji pomnilnik za shranjevanje vašega uporabniškega vmesnika?
Ne smemo pozabiti, da vgrajeni delovni (SRAM) pomnilnik v tipičnem, malo bolj bolj zmogljivem mikrokontrolerju doseže velikost do približno 512 KB. Očitno pa sta ti dve aplikaciji (slika 1) prekoračili potrebo po vgrajenem hitrem pomnilniku skoraj vseh mikrokontrolerjev, ki jih je mogoče danes dobiti na trgu. To pa pomeni potrebo po dodatnem zunanjem pomnilniku izven mikrokontrolerja. Takšen pomnilnik mora imeti veliko gostoto, visoko stopnjo zmogljivosti in možnost hitrega dostopa. Ena izmed možnosti za zunanji pomnilnik v grafičnih aplikacijah z mikrokontrolerji je asinhronski statični RAM. Z zunanjim SRAM imamo zagotovljeno povečanje pomnilnika, saj zagotavlja gostoto 8 MB in ga je hkrati tudi relativno enostavno oblikovati tudi z ne-multipleksiranimi naslovnimi linijami in razporedom priključkov, ki je prijazen do zunanjih vzporednih vrat na mnogih mikrokontrolerjih. Kompromis ob uporabi zunanjega SRAM-a je gostota (8 MB pomnilnika se morda sliši veliko, vendar za mnoge grafično intenzivne aplikacije ne zadostuje), cena (pogosto je cena enega samega takšnega pomnilnika pri spletnih distributerjih višja od cene mikrokontrolerja) in razpoložljivega prostora na ploščici tiskanega vezja.

277 28 02 300x214 - Reševanje problema velikosti pomnilnika pri načrtovanju grafičnih uporabniških vmesnikovŠtevilni mikrokontrolerji, ki jih je danes mogoče dobiti na trgu, imajo grajen SDRAM vmesnik, ki ga je mogoče uporabiti za shranjevanje grafike, običajno pa podpirajo gostoti 8 MB in 16 MB tovrstnih zunanjih pomnilnikov. SDRAM pomnilnik je razmeroma lahko dobavljiv, poleg tega pa je stroškovno mnogo bolj učinkovit kot so zunanji SRAM pomnilniki. Kot smo omenili že zgoraj moramo 8 MB šteti kot spodnjo mejo, pri čemer nekatere aplikacije grafičnih uporabniških vmesnikov (na primer prikaz upogibanja fotografij) presegajo to mejo. Uporaba SDRAM pomnilnika pa je hkrati tudi primer, ko je pomnilnik treba načrtovati že v zasnovi ploščice tiskanega vezja. Pri vodilih, kjer hitrosti dosegajo 120 MHz, je treba upoštevati tudi posebne zahteve v zvezi z načrtovanjem tiskanega vezja. Za nekatere aplikacije je na primer priporočljivo, da vse ploščice tiskanih vezij z SDRAM slikovnim pomnilnikom vsebujejo šest plasti. To pomeni, da lahko vgradnja visokozmogljivega zunanjega pomnilnika načrtovanju tiskanega vezja doda do štiri plasti in s tem poveča končno ceno tiskanega vezja skupaj z vgrajenimi elektronskimi komponentami.

Obstaja še ena težava, ki se lahko pojavi pri SDRAM pomnilniku. Pri tipičnih 100MHz 16-bitnih vodilih lahko teoretično dosežemo najvišjo hitrost prenosa podatkov 200MB/s. WVGA zaslon z ločljivostjo 800×480 pik in s hitrostjo osveževanja 60MHz pri 16-bitni barvni globini zahteva pretok podatkov 46 MB/s. Če pa se obdelava slik oziroma grafike izvaja bodisi v procesorju ali morebitni enoti za obdelavo grafike, lahko tudi kot podpora večslojnemu prekrivanju (ki postaja nekak normativ pri aplikacijah ugnezdene grafike), bi postale zahteve za sistem s tipično zmogljivostjo povprečnega SDRAM pomnilnika realno nedosegljive. Z drugimi besedami, zmogljivost SDRAM pomnilnika lahko naenkrat postane omejitev pri nekaterih grafičnih aplikacijah višjega cenovnega razreda. Se spomnite trendov, ki smo jih prej omenili? Končni uporabniki si želijo, da bi bile vse interakcije z njihovimi elektronskimi napravami podobne izkušnjam s pametnimi telefoni in njihovimi najljubšimi aplikacijami, zato lahko nedvomno pričakujemo, da se bo pritisk na zmogljivost delovanja na področju ugnezdene grafike v prihodnosti le še povečal. Tako je jasno tudi to, da bo v prihodnje potrebna neka naprednejša tehnologija z večjimi zmogljivostmi in višjo gostoto.

4. vprašanje
Ali za aplikacije grafičnih uporabniških vmesnikov sploh obstaja kakšna oblika notranjega pomnilnika?
Zadnja pomnilniška tehnologija, ki jo bomo tu obravnavali, je DDR2 SDRAM. To daje razvijalcu veliko prednosti zaradi še višjih gostot (do 128 MB), kot bi jih bilo mogoče doseči z SDRAM pomnilnikom. Druga prednost uporabe DDR2 SDRAM pomnilnika je njegova zmogljivost. Hitrosti delovnega takta v vmesniku med procesorjem in DDR2 pomnilnikom so vsaj dvakrat višje kot pri SDRAM pomnilnikih. Kratica DDR pomeni tudi „dvojna hitrost prenosa podatkov“ (double data rate), kar pomeni, da se podatki prenesejo v pomnilnik ali iz njega dvakrat v vsakem ciklu. Rezultat tega je pomnilniška tehnologija, ki je vsaj štirikrat hitrejša od SDRAM pomnilnika, ki se običajno uporablja na trgu.

Ena od glavnih pomanjkljivosti uporabe te tehnologije je izkoriščanje zmogljivosti DDR2 pomnilnika. Z delovnim taktom vmesnega vodila, ki se začne pri 200MHz in prenosom podatkov, ki se izvaja v vsaki posamezni polovici takta, je treba posvetiti posebno pozornost tistim parametrom, ki vplivajo na pravilno delovanje SDRAM, da se zagotovi pravilna celovitost signala, hkrati pa se zagotovi njegova izolacija po celotni plošči tiskanega vezja. Oblikovalci DDR morajo biti pozorni tudi na druge specifikacije, kot so stroge tolerance za napetostne nivoje referenčne, vhodne in izhodne napetosti, ustrezno blokiranje širjenja motenj, upoštevanje priporočil glede fizične razporeditve na ploščici tiskanega vezja, kot so debeline povezav, razmak med vezmi in razmak do sosednjih signalov.

Ker bodo očitno ugnezdene grafične aplikacije vedno večje, obširne in vse bolj zapletene, bo potreba po velikem pomnilniku in hitrem prenosu podatkov v DDR2 pomnilnik še naprej naraščala. Oblikovalci ugnezdenih sistemov, ki so pred nekaj leti za mikrokontroler načrtovali taktno frekvenco na največ 150 MHz, se zdaj soočajo s potrebo po uporabi dvakrat hitrejših procesorjev s pomnilniškimi vmesniki, ki ustrezajo frekvenci delovnega takta mikrokontrolerja. Večina proizvajalcev mikrokontrolerjev danes lahko in tudi v resnici ponuja pomoč pri načrtovanju aplikacij z njihovimi izdelki.

No, kakorkoli že, ali ne bi bilo lepo imeti dostop do pomnilnikov visoke gostote in visoke zmogljivosti v hitrem mikrokontrolerju za delo z zahtevno grafiko, ne da bi bilo potrebno tiskanemu vezju dodajati plasti, ki znatno vplivajo na skupne stroške v zvezi z vgrajenim materialom BOM in pomenijo dodatne napore za doseganje tistega, kar bi lahko lahko že dosegli v začetku, če bi izbrali delovni takt 200MHz skupaj DDR2 vodilom? PIC32MZ DA proizvajalca Microchip je eden redkih mikrokontrolerjev na trgu, ki se lahko povežejo z DDR2 pomnilniki. Družina mikrokontrolerjev PIC32MZ DA zmanjšuje kompleksnost projektov pri oblikovanju zunanjega pomnilnika z vključitvijo grafičnega pomnilnika v sam čip. S tehniko oblikovanja zloženega pomnilnika PIC32MZ DA vključuje 32 MB DDR2 DRAM pomnilnika v notranjosti mikrokontrolerja, tako da zunanji pomnilnik ni potreben (slika 2). Znotraj tega mikrokontrolerja se nahaja tudi triplastni grafični krmilnik in visoko zmogljiva grafična procesna enota, ki zagotavlja neprimerljivo raven integracije in zmogljivosti mikrokontrolerjev v grafičnih aplikacijah.

Zaključek
Potreba po oblikovanju izdelkov in vgrajenih aplikacij, ki naj bi bili v koraku z lepoto in zapletenostjo grafičnih uporabniških vmesnikov ostalih sodobnih naprav, se bo le še pospeševala. Medtem, ko obstaja več pomnilniških tehnologij, ki skušajo rešiti eno od ključnih omejitev v arhitekturi mikrokontrolerjev – pomnilniške kapacitete, ima vsaka izmed njih svoje edinstvene prednosti in slabosti. V tem članku smo obravnaval prednosti in slabosti vsake od teh arhitektur. Načrtovanje grafičnih vmesnikov ne pojenja, temveč narašča in čeprav lahko omejene pomnilniške kapacitete načrtovalcem povzročajo glavobole, vam to ne bi smelo predstavljati omejitev, ki bi vas ovirala pri oblikovanju odličnih in učinkovitih aplikacij, ki bodo zadovoljile pričakovanja vaših strank.

Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.

www.microchip.com
Tags: