![]() | ![]() |
![]() |
| ![]() |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mikroprocesorska arhitektura ARM (3): Cortex-M i Cortex-R
Mikrokontroleri su nezaobilazni u savremenim automobilima, televizorima, telefonima, mrežnoj opremi i svemu drugom što ima veze sa elektronikom Iako će prva asocijacija na mikroprocesor kod velike većine ljudi biti računar, najmasovnija upotreba mikroprocesorske tehnologije zapravo je vezana za mikrokontrolere, integralna kola koja, osim mikroprocesora, u sebi sadrže manje količine skladišne i operativne memorije, kao i različit broj interfejsa niskog nivoa. Oni se nalaze gotovo svuda oko nas, a mi smo retko svesni te činjenice. Recimo, osim CPU, u našem kompjuteru imamo još bar nekoliko mikrokontrolera. Oni se, u ovom ili onom obliku, sreću unutar hard i SSD drajvova, kao delovi elektronike za razne senzore (kamera, otisak prsta, nivo osvetljenosti, temperatura, žiroskop, touch ekrani...), zatim u GPS uređajima, mrežnim i zvučnim karticama, štampačima i ko zna u čemu još ne. Mikrokontroleri su nezaobilazni u savremenim automobilima, televizorima, telefonima, mrežnoj opremi i svemu drugom što ima veze sa elektronikom.
Cortex-M3
Ova generacija jezgara je karakteristična i po tome što ima hardversku podršku za množenje i deljenje brojeva, što nije bila naročito česta pojava u svetu mikrokontrolera. Za množenje je potreban samo jedan takt procesora, dok kod deljenja broj ciklusa varira od 2 do 12, u zavisnosti od veličine brojeva. Standardnom cevovodu od tri nivoa kod M3 je dodata mogućnost spekulativnog izvršavanja instrukcija. Ova jezgra ostvaruju brzinu od 1,25 DMIPS po megahercu, što je solidan rezultat i za današnje vreme, a da ne govorimo o vremenima kada su se prvi modeli pojavili na tržištu. Još jedna od novina se odnosi na uvođenje mogućnosti direktne manipulacije podacima na nivou bita, što je od velike važnosti za mikrokontrolere. Ovo se postiže korišćenjem tehnike pod nazivom bit-banding, koja je moguća zahvaljujući postojanju specijalnog područja u SRAM memoriji. Postoje dva takva područja opsega jednog megabajta, koja svoj manji deo odvajaju za manipulaciju nad bitovima. Ranije se u slučajevima potrebe rada na nivou bita morala vršiti procedura koja je trošila priličan broj procesorskih ciklusa.
Stariji modeli, izrađivani sa tehnologijom od 180 nanometara, imali su površinu od 0,35 mm2 i potrošnju od 141 mikrovat po megahercu. Kasnije je, uvođenjem 90-nanometarskog procesa, kristal smanjen na 0,09 mm2, a potrošnja do 31 mikrovat po megahercu, dok implementacija ove arhitekture u izradi procesom od 40 nanometara veličinu spušta do 0,02 mm2, a potrošnju na prihvatljivih 11 mikrovati po megahercu. U broju SK 2/2018 pominjali smo mikrokontroler STM32F103C8T6 rađen po Cortex-M3 dizajnu i koji za vrlo malo novca pruža 128 kilobajta fleš memorije (zvanično upola manje), 20 kilobajta SRAM-a i brzinu od celih 90 DMIPS. Kada to uporedimo sa Atmelovim 328P, dobijamo šest puta brži rad, četiri puta više fleš memorije i deset puta više SRAM-a. Cortex-M1 Generacija mikrokontrolera Cortex-M3 je imala topao prijem na tržištu i postavila je nove standarde po mnoštvu pitanja. S obzirom na odlične performanse, inženjeri iz ARM nisu morali da nastavljaju trku za još boljim dizajnom, već su se posvetili nekim drugim stvarima. Jedna od tih stvari je bila i uvođenje jezgra za integraciju sa FPGA čipovima. FPGA (field-programmable gate array) predstavlja tehnologiju koja omogućava uređivanje strukture logičkih matrica u skladu sa željama korisnika. Drugim rečima, to su integrisana kola koja se mogu programirati uz pomoć jezika HDL (hardware description language). Iako je generacija Cortex-M3 jezgara rađena u tada najnaprednijoj tehnologiji ARMv7-M, tri godine kasnije se vrši povratak na stariju ARMv6-M. Razlog je bio taj što se nije mogla postići željena optimizacija M3 jezgra, pa bi ono moralo da radi na nižim radnim taktovima. Isto tako, interfejs sistemske magistrale AHB-Lite je bio nešto složeniji za povezivanje sa ostatkom FPGA logike. Čipovi ARMv6-M generacije imaju podršku za klasične Thumb instrukcije, sa dodatkom manjeg broja 32-bitnih naredbi karakterističnih za Thumb-2. Ostatak funkcionalnosti je sličan onome što smo gledali kod jezgara iz prethodnih ARMv6-M serija, uz hardversku podršku za 32-bitno množenje u opsegu 32-bitnih rezultata. U zavisnosti od proizvođača i modela, FPGA čipovi sa jezgrima Cortex-M1 imaju različite mogućnosti i različit broj integrisanih komponenti. Na primer, čip Actel Fusion M1AFS600 poseduje 30 analognih ulaza koji obrađuju signal preko 12-bitnih AD konvertera, kao i deset analognih izlaza. Na raspolaganju nam je 600.000 sistemskih kapija, odnosno, 13.824 logička čvora. Fleš memorija je veličine četiri megabita, dok SRAM ima razmer od 108 kilobita. Cortex-M0, M0+
Dve godine kasnije, ARM izlazi sa dizajnom Cortex-M0+, gde plus stavlja do znanja da se radi o unapređenoj verziji prethodnika. Ovo je ujedno i prvi ARM dizajn koji koristi protočnu obradu u samo dva koraka. To je postignuto tako što je korak namenjen obradi Decode faze naredbe podeljen na dva dela, pa se prvi (Pre-decode) izvršava zajedno sa Fetch fazom, dok Main decode ide uz Execute. Ovakav pristup je značio manje korišćenje flip-flop kola i samim tim, veću uštedu energije. Omogućeno je premeštanje tablice vektora, kao kod M3. Dodata je posebna magistrala za I/O zadatke, koja omogućava da često korišćeni I/O registri završe posao u samo jednom procesorskom taktu. M0+ poseduje mogućnost korišćenja MPU (memory protection unit) mehanizma za ograničavanje pristupa u osam memorijskih zona, što ceo sistem čini stabilnijim. Opciono je podržana i MTB (micro trace buffer) logika koja omogućava kreiranje jeftinog interfejsa za testiranje programa. Ova jezgra se mogu pohvaliti dodatno unapređenom energetskom efikasnošću, pa sada imamo vrednost od 50 mikrovati po megahercu (kod M0 je 85 mikrovati po megahercu) za modele rađene u 0,18 mikrona i samo 9,8 mikrovati po megahercu (12,5 kod M0) za čipove koji se proizvode 90-nanometarskim procesom. Po rečima proizvođača, brzina M0+ generacije mikrokontrolera iznosi 0,94 DMIPS po megahercu, u standardnom režimu, i 1,36 DMIPS po megahercu u uslovima maksimalne optimizacije. Mikrokontroleri M0/M0+ su zbog svog nevelikog seta instrukcija prvenstveno predodređeni za opštu obradu I/O podataka, dok je u slučaju potrebe za većim obimom kalkulacija mudrije koristiti čipove iz klase M3 i jače. Cortex-M arhitektura predviđa jednostavno prebacivanje binarne konfiguracije programa sa slabijih na moćnije mikrolontrolere. Ovo je kategorija čipova sa niskom cenom i skromnim resursima, pa se najčešće susrećemo sa modelima koji imaju od 16 do 64 kilobajta fleš skladišta i jedan do osam kilobajta SRAM-a. Cortex-M4(F)
Proširenje skupa instrukcija sa blokom za DSP omogućava da u jednom ciklusu paralelno obrađujemo četiri operacije sa 8-bitnim ili dve sa 16-bitnim vrednostima, zatim SIMD aritmetiku za 8 i 16 bita koja podržava tzv. „zasićenu” aritmetiku (saturation arithmetic), kao i hardversku podršku za deljenje koja, u zavisnosti od veličine brojeva, troši od dva do 12 procesorskih taktova. Zasićena aritmetika zaokružuje brojeve u granice nekog opsega (ako je taj opseg 0÷100, 20 – 50 daje 0, 60 + 35 daje 95, dok je 60 + 50 ili 99 × 99 zaokruženo na 100. Osim varijante M4, postoji i arhitektura M4F koja dodatno donosi podršku za rad sa brojevima u formatu pokretnog zareza, što je od velike koristi u poslovima koji zahtevaju mnogo matematike. U pitanju je logika koja obrađuje podatke u 32-bitnoj preciznosti (single precision) po specifikaciji IEEE 754. Prilikom korišćenja tehnološkog procesa od 0,18 mikrona, projektovana površina kristala iznosi 0,44 mm2, dok je potrošnja 151 mikrovat po megahercu. Upotrebom 90-nanometarske tehnologije površina se smanjuje na 0,12 mm2, a potrošnja na 32,82 mikrovata po megahercu. Još savremeniji tehnološki procesi dodatno poboljšavaju radne karakteristike ove generacije, pa tako upotreba 40-nanometarske tehnologije rezultuje kristalom veličine od 0,028 mm2 i potrošnjom od 12,26 mikrovati po megahercu. Cortex-M7(F)
Ova generacija mikrokontrolera se javlja direktnim naslednikom serije M4(F) i preporučuje se za poslove gde je potrebna velika količina procesorske snage. Održana je potpuna kompatibilnost na binarnom nivou, tako da je prelazak na novi hardver krajnje jednostavan. Cortex-M23, Cortex-M33(F)
Iako se navodi da TrustZone instrukcije koje povećavaju bezbednost sistema predstavljaju opciju, one će naći svoje mesto u najvećem broju konfiguracija, pošto je bezbednost važan deo IoT strategije koja se naglašava od strane marketinga. Tu je i podrška za MPU zasnovana na novoj PMSAv8 arhitekturi koja omogućava rad sa 16 zaštićenih regiona memorije i uz to olakšava rad programerima. Broj hardverskih prekida je povećan do 240, ali su ostala samo četiri nivoa prioriteta, kao kod M0+. Preliminarni podaci govore da će brzina M23 jezgra biti na nivou od oko jedan DMIPS po megahercu, što je malo unapređenje u odnosu na M0+, ali treba istaći da to i nije bio primarni cilj, već se težilo ka što većoj minijaturizaciji, pošto se kao osnovna primena ovih mikrokontrolera očekuje u okviru raznoraznih senzora i uređaja sposobnih za rad u sistemu IoT. Čast da budu prvi predstavnici nove generacije su sredinom ovog leta dobili modeli SAM L10 i L11 kompanije Microchip, sa taktom jezgra od 32 megaherca, do 64 kilobajta fleša i 16 kilobajta SRAM-a, uz potrošnju od 25 mikroampera po megahercu. Sa cenom malo većom od jednog dolara predstavljaju ozbiljnu konkurenciju 8-bitnim mikrokontrolerima.
Naravno, veće performanse najčešće znače i veći utrošak energije, pa dok M23 uspeva da zadrži potrošnju na nivou generacije M0+, M33 troši dvostruko više i pri tome, M23 ima dimenzije koje iznose samo trećinu kristala mikrokontrolera M33. Dok je kod M23 jasna tendencija ka minimalnim dimenzijama i maloj potrošnji, kod M33 se težilo ka optimalnom odnosu dimenzija, potrošnje i procesorske snage, što ovu klasu preporučuje za najširi spektar namena. Cortex-M35P U pitanju je veoma sveža arhitektura za koju još nemamo dovoljan broj pouzdanih informacija. Pošto je predstavljena početkom maja ove godine, na njenu realizaciju ćemo čekati bar godinu dana. Ono što je izvesno je to da će se raditi o evoluciji M33 generacije, koja će sada biti osnažena sa kešom za instrukcije. Najveća pažnja će biti posvećena bezbednosti sistema, koja će biti izvedena u više slojeva, počevši od fizičke zaštite, preko TrustZone i MPU, pa do koncepta hardverske zaštite koji je prethodno viđen kod SecurCore porodice čipova. Cortex-R serija – nešto između
Cortex-R4(F) je najstarija generacija čipova u klasi R i sagrađena je na osnovama arhitekture ARMv7R, sa protočnim nizom od osam nivoa, podrškom za predviđanje grananja i dual-issue procesiranjem instrukcija. Keš memorija je harvardskog tipa i kreće se od četiri do 64 kilobajta. Kada se radi o izvršavanju Thumb instrukcija, R4 je za 50 odsto brži od ARM946E-S i ostvaruje 1,62 DMIPS po megahercu. Dizajn podržava MPU koji može da radi sa osam do 12 memorijskih regiona. Poboljšanje performansi je moguće postići i upotrebom TCM (tightly-coupled memory) interfejsa. FPU jedinica je VFPv3 tipa i poseduje 16 registara dvostruke preciznosti. ECC sistem za proveru ispravnosti podataka ima mogućnost rada sa jednim ili dva bita, a tu je i podrška za proveru bita pariteta. Cortex-R4 se izrađuje tehnološkim procesom od 28 nanometara i ima energetsku efikasnost od 62 DMIPS po milivatu, dok se veličina kristala kreće od 0,21 mm2 pa naviše. Cortex-R5(F) možemo posmatrati kao varijantu prethodnog dizajna koja glavne razlike donosi na planu programiranja, olakšavajući rad sa memorijom i detekcijom grešaka. Cortex-R7(F) predstavlja značajno unapređenje u odnosu na R4 i R5, zahvaljujući superskalarnom dizajnu sa protočnom linijom od 11 nivoa, vanrednim izvršenjem instrukcija, predviđanjem grananja, pre-fetch mehanizmom, preimenovanjem registara i nizom drugih karakteristika koje viđamo kod procesora iz serije Cortex-A. Po prvi put u ovoj klasi imamo upotrebu brzog GIC (generic interrupt controller) za kompleksnu obradu prekida, kao i SCU (snoop control unit) koji je zadužen za komunikaciju keša sa procesorom i olakšava primenu paralelnog dizajna sa dva jezgra. Uvedena je i zaštita od hardverskih grešaka. Tehnološki proces je ostao na 28 nanometara, veličina jezgra iznosi 0,33 mm2, ali je zbog složenijeg dizajna energetska efikasnost opala do 46 DMIPS po milivatu. Brzina ove generacije je u opsegu 2,50-3,77 DMIPS po megahercu. S obzirom na radne taktove koje idu preko 1,5 gigaherca, ovi čipovi su dobro rešenje za poslove koji trebaju dosta procesorske snage i ne zahtevaju maksimalnu uštedu energije. Glavna ciljna tržišta su kontroleri za SSD uređaje i 5G modeme. Cortex-R8(F) kompanija ARM izbacuje nakon pet godina mirovanja, 2016. godine. Ona je namenjena poslovima koji zahtevaju više snage, pa po rečima proizvođača donosi dvostruko veće performanse u odnosu na prethodnika. Zanimljivo je da su podaci o performansama na sajtu proizvođača za ovu generaciju identični kao za R7, pa pretpostavljamo da se radi o copy-paste grešci. I ovde je primenjen superskalarni dizajn cevovoda sa 11 faza, vanrednim izvršavanjem instrukcija, pre-fetch mehanizmom, predviđanjem grananja, preimenovanjem registara i paralelnim izvršavanjem load-store instrukcija. To je praćeno sa po četiri do 64 kilobajta keš memorije za instrukcije i podatke. Funkciju matematičkog koprocesora obavlja VFPv3 modul sa 16 registara dvostruke preciznosti. Tu su još CoreSight modul za dibaging koji se može odnositi na pojedinačna jezgra ili za ceo klaster. Kada smo već kod jezgara, njih u ovom slučaju može biti od jednog do četiri. Očekivane performanse za konfiguracije sa četiri jezgra, pri brzini od 1,5 gigaherca, iznose oko 15.000 DMIPS. Cortex-R52(F) je prvi predstavnik arhitekture ARMv8-R. Iako bi po analogiji sa arhitekturom ARMv8-A mogli pomisliti da se radi o jezgru koje izvršava 64-bitni kod, to nije tako. Pozitivna strana ovakvog rešenja je da je zadržana binarna kompatibilnost u odnosu na prethodnike, pa je proces prelaska na nove čipove vrlo jednostavan. Još nisu objavljeni podaci o performansama, ali proizvođač govori o tome da će R52 pod istim uslovima (sa jednim jezgrom) biti za 35 odsto brži od generacije R5 (razlog više da sumnjamo u podatke za R8) i da će rad sa MPU biti brži za čak četrnaest puta.
Igor S. RUŽIĆ |
![]()
![]()
![]()
![]()
![]()
![]()
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |