Mikroprocesorska arhitektura ARM (1): istorijat S obzirom na to da se broj proizvedenih mikroprocesora i mikrokontrolera sa ARM arhitekturom svake godine broji u milijardama, red je da se bolje upoznamo sa ovom platformom. Teško je danas pronaći nekoga ko ne poseduje pametni telefon, kao što je nije lako pronaći i smartfon u kome ne kuca neki od mikroprocesora sa ARM arhitekturom. I dok Intel već dugi niz godina dominira na tržištu desktop i serverskih mikroprocesora (na radost mnogih, AMD je ponovo u toj priči), nije se uspeo ozbiljnije nametnuti na kvantitativno najvećem tržištima mobilnih uređaja i mikrokontrolera. Intelovi Atom mikroprocesori su po radnim karakteristikama svakako konkurentni platformi ARM, ali postoje faktori koji su uticali na njihov (bar do sada) tržišni neuspeh. Jedan od razloga je istorijske prirode, jer su se ARM uređaji prvi počeli koristiti na mobilnim platformama. Kao drugi razlog mogli bismo da navedemo slabiju podršku za SoC (System-on-Chip) filozofiju izrade integralnih kola koja se koriste kao osnova za konstruisanje mobilnih uređaja. Naime, Intel, pored mikroprocesora, proizvodi i druge čipove bez kojih nije moguće konstruisati računarski sistem (ono što kod PC računara zovemo čipsetom). Umesto da ti čipovi budu zaokruženi u jednu celinu, oni se koriste kao više uzajamno povezanih delova, što se negativno odražava na potrošnju električne energije. Kao treće, Intel drugim kompanijama ne dozvoljava licenciranje procesorskih jezgara, pa prethodno pomenuti problem oko SoC čipova nije moguće rešiti onako kako to radi ARM. Povrh svega toga, treba dodati veću cenu Atom platforme, koja je posledica upotrebljene CISC (Complex instruction set computer) arhitekture, kao i većih troškova razvoja u okviru jedne visokotehnološke kompanije veličine Intela.
 | | S obzirom na to da se broj proizvedenih mikroprocesora i mikrokontrolera sa ARM arhitekturom svake godine broji u milijardama, red je da se bolje upoznamo sa platformom za koju smo svi čuli, ali je dosta mali broj onih koji su dublje upućeni u prošlost, sadašnjost i budućnost te najpoznatije RISC (Reduced instruction set computer) arhitekture.U početku beše Žir Početak osamdesetih godina dvadesetog veka se bez sumnje može smatrati zvezdanim periodom britanske računarske industrije. I dok je „sa druge strane bare” mikrokompjuterska revolucija započela nešto ranije, pojavom kompanija kao što su Apple, Tandy, Commodore i Atari, Britanci su u tu priču uskočili u odličnom trenutku. Kompanije Sinclair Research i Acorn Computers pokrenute od strane dugogodišnjih saradnika, Klajva Sinklera (Clive Sinclair) i Kristofera Karija (Christopher Curry), 1980. godine izlaze na tržište sa modelima ZX80 i Atom. Sledeće godine na red dolaze dosta uspešniji modeli ZX81 i Proton. Ovaj potonji dobija naziv BBC Micro i postaje deo inicijative BBC Computer Literacy Project, koja je imala za cilj širenje računarske pismenosti, a usput dobija i mesto osnovnog kompjutera u britanskim školama. Sledeća, 1982. godina, donela je eksploziju popularnosti kućnih računara, a tada su u Velikoj Britaniji svetlost dana ugledali BBC Micro Model B i legendarni ZX Spectrum. To je vreme kada se pojavljuju još neki britanski računari, kao što su NewBrain, Dragon, Jupiter Ace i Oric, ali sa manjim tržišnim uspehom. Na kraju, šlag na britansku računarsku tortu stavlja Alan Šugar (Sugar), koji je sa svojom kompanijom Amstrad odigrao važnu ulogu u tranziciji kućnih kompjutera prema sistemima za poslovnu primenu.
Ipak, da se vratimo našoj priči. Pojava IBM PC računara i njihova popularnost u poslovnom svetu je uzrokovala da u kompaniji Acorn počnu sa razmišljanjem na temu snažnijeg mikroprocesora koji bi zamenio MOS Technology 6502 u novim projektima. Inženjeri nisu bili zadovoljni sa tada prisutnim rešenjima u vidu mikroprocesora Motorola 68000 i National Semiconductor 32016, pa su doneli radikalno rešenje da se ide na kreiranje potpuno nove mikroprocesorske arhitekture. Ohrabreni činjenicom da su i studenti sa univerziteta Berkli bili u stanju da kreiraju RISC mikroprocesor (što se posle izrodilo u SPARC arhitekturu), Acornovi inženjeri rešavaju da se upuste u svoju najveću avanturu do tada i kreiraju čip čija će snaga biti bar 1,5 puta veća od brzine računara VAX-11/750. Sofi Vilson (Sophie Wilson, rođena kao Roger) je najpoznatija transseksualna osoba u kompjuterskom svetu, sjajan inženjerski um, i neko ko je nosio laskavu titulu najboljeg 6502 programera. U svojim ranim dvadesetim učestvuje u kreiranju više mikroračunara, uključujući i pomenute Acornove modele, a prilikom razvoja novog RISC mikroprocesora dobija zadatak da definiše skup mašinskih instrukcija. Vilson direktoru kompanije demonstrira simulator novog mikroprocesora napisan na računaru BBC Micro i on odobrava sredstva za započinjanje projekta.Krajnji rezultat 18-mesečnog rada je bio 32-bitni mikroprocesor sa 25.000 tranzistora, izrađen u 3-mikronskoj tehnologiji i sa dimenzijama od 50 kvadratnih milimetara. Primera radi, 16/32-bitni CISC mikroprocesor Motorola 68000 iz 1979. godine imao je 68.000 tranzistora, dok je 16-bitni Intel 80286 iz 1982. godine već dogurao do 134.000. Savremenik prvog ARM-a, RISC mikroprocesor MIPS R2000 iz 1985. godine je rađen dvo-mikronskim procesom i imao je 110.000 tranzistora na površini od 80 kvadratnih milimetara. Pri svemu tome, ARM je posedovao bolje radne karakteristike od oba pomenuta CISC mikroprocesora i znatno manju potrošnju energije. Priča se da je krajnje jednostavan dizajn procesora bio posledica neiskustva inženjera, što se posle pretvorilo u njegov veliki plus.Na adresi goo.gl/fzE27o je moguće pogledati simulator mikroprocesora ARM1 sa mogućnošću zumiranja prikaza do nivoa tranzistora.Ta prva verzija ARM arhitekture se nikada nije pojavila na tržištu, već su proizvedeni čipovi korišćeni kao koprocesori za BBC Micro i upošljavani na zadacima razvoja pratećih čipova koji su planirani za ugradnju u nove računare. Arhimedovi krugovi Komercijalna realizacija nove mikroprocesorske arhitekture je zabeležena 1987. godine, kada se na tržištu pojavljuju prvi primerci računara Acorn Archimedes. Računica kompanije je bila prvenstveno orijentisana na britanski obrazovni sistem, gde je Acorn od ranije imao odlične pozicije. Jedan od programa koji je dolazio sa novim mašinama bio je emulator računara BBC Micro, što je trebalo da obezbedi bezbolnu tranziciju na novi hardver. Osim u Britaniji, Archimedes je imao dosta dobar uspeh u Irskoj, Australiji i na Novom Zelandu. Bilo je to vreme dominacije računara sa mikroprocesorom M68000 (Amiga, Atari ST, Macintosh), a Archimedes je u toj priči imao moćne adute. Naime, Motorolin procesor je na standardnoj brzini od osam megaherca bio u stanju da izvršava 1,4 (od 0,5 za 32-bitni kod, do 2,0 za optimizovani 16-bitni kod) miliona instrukcija u sekundu. U isto vreme, ARM je izvršavao nešto manje od pet miliona 32-bitnih instrukcija. I kada bi se moglo pomisliti da više ništa ne može sprečiti blistavu karijeru novog računara, nevolje su stigle sa svih strana. Kao prvo, bilo je mnogo problema sa operativnim sistemom (prvobitno nazvan Arthur, kasnije promenjen u RISC OS) koji se pokazao kao veoma „sirov”. Kao drugo, Acorn je u to vreme upao u ozbiljne finansijske nevolje, pa ga je na kraju kupio italijanski Olivetti. Kao treće, sa cenom znatno većom od svojih konkurenata i sa istovremenim manjkom multimedijalnih mogućnosti i softverskih naslova, nije mogao dobiti tržišnu bitku. Da je bio u pitanju američki proizvođač, verovatno bi uspeh bio dosta bolji. Uostalom, kao i u čitavom svetu, nezadrživi nadolazeći talas sve jeftinijih i sve moćnijih PC klonova je jednostavno pregazio sve što mu se našlo na putu i u praktično u potpunosti zagospodario računarskim tržištem.
Jabuka na glavi Nakon lansiranja Archimedesa, započinje jedan mirniji period za malobrojne inženjere uključene u razvoj ARM arhitekture i on se završava pojavljivanjem generacije ARM3 krajem osamdesetih godina. Već postojećoj logici je dodano četiri kilobajta unificiranog keša za podatke i instrukcije, što se pozitivno odrazilo na brzinu rada. Čip je imao preko 300.000 tranzistora, od kojih je 40.000 bilo namenjeno logici mikroprocesora, dok je ostatak otpadao na keš i na CAM (Content-addressable memory), poznatiju kao asocijativna memorija. Negde u to vreme dolazi do saradnje sa kompanijom Apple, koja je tražila sveža rešenja kako bi parirala moćnoj osovini IBM-Intel-Microsoft. ARM je originalno bila skraćenica za Acorn RISC Machine, da bi to nakon početka saradnje sa Appleom (i tada poznatim proizvođačem čipova VLSI) bilo zamenjeno sa Advanced RISC Machines i na kraju dobilo kratki oblik u vidu ARM Holdings ili prosto ARM. Generacija ARM3 je ujedno i poslednja koja je delo ruku Acorna. Pogled na prateću tabelu nam jasno govori da ne postoje generacije 4 i 5, već se prelazi na generaciju ARM6, a razlozi za to nisu nikada objavljeni.
 | „Šestica” je rađena u pravcu koji je nametao prvi Appleov PDA (Personal digital assistant), uređaj poznat pod imenom Newton. Revolucionarni koncept sa raspoznavanjem rukom pisanog teksta, zbog svoje nedorađenosti nije imao većeg uspeha na tržištu, ali je započeo revoluciju koja je kasnije dovela do pojavljivanja pametnih telefona. Važna novost ove generacije (arhitektura ARMv3) je bilo uvođenje 32-bitne adresne magistrale, što je omogućilo adresni prostor od četiri gigabajta. Osim modela navedenih u tabeli, trebamo pomenuti i prvi SoC ARM250 koji je rađen u ARMv2 arhitekturi, ali sa ARMv3 tehnologijom (često se označava kao ARMv2a).Palac prema gore Sedma generacija ARM čipova je sa sobom donela znatna unapređenja svojih ARMv3 prethodnika, kao i uvođenje novih ARMv4T i ARMv5 arhitektura, mada je ovu prvu potrebno posmatrati kao ekstenziju, a ne kao novu arhitekturu. Procesorski keš je udvostručen na osam kilobajta, dok je novi tehnološki proces doveo do stvaranja veoma malog jezgra i, posledično, niskog stepena disipacije energije. U okviru prvih modela ove serije dolazi do uvođenja trostepene protočne linije, što se u kasnijim fazama povećava na pet. Ovo su u isto vreme i prvi modeli koji mogu da rade sa naponom od 3,3 volta, a dobitak u performansama u odnosu na prethodnu generaciju iznosi 50 do 100 odsto. Napušta se rad sa asocijativnom memorijom, ali će se ona posle ponovo pojaviti u nekim drugim generacijama.
Jedna od važnih novosti je bilo uvođenje 16-bitnog Thumb seta instrukcija, što je mnogo značilo za efikasniji rad sa memorijom, posebno kada su u pitanju mikrokontroleri. Radi se o podskupu instrukcija koje se zapisuju u formatu od 16 bita, ali se prilikom izvršavanja automatski pretvaraju u 32-bitni kôd.
Ova generacija donosi i prve ozbiljnije komplikacije sa označavanjem čipova i pripadnosti arhitekturama. Tako, recimo, kod modela ARM7TDMI slovo „T” predstavlja podršku za 16-bitni Thumb set naredbi, „D” znači da je u čip ugrađen JTAG dibager, „M” je podrška za tzv. brzo množenje, dok je „I” oznaka za prisustvo ICE hardverskog interfejsa. Pored pomenutih oznaka, treba reći da „J” predstavlja prisustvo tzv. Jizelle hardverske akceleracije izvršenja Java bajt koda, a „S” se odnosi na mogućnost logičke sinteze hardvera od strane zainteresovanih kooperanata, uz pomoć opisnog jezika Verilog. Možemo primetiti i da ova generacija obuhvata tri hardverske arhitekture, što lako može da zbuni slabije poznavaoce problematike. Sedma generacija je razvijana u periodu od 1993-1998. godine, a u tom vremenu je nastalo nekoliko različitih arhitektura. Posledica svega toga je da je izgubljena logička i hronološka veza između generacija mikroprocesora i njihovih arhitektura. 8, 9, 10, 11... U prethodnoj tabeli smo videli da umesto očekivane arhitekture ARMv4 piše ARMv4T, za koju smo opet rekli da predstavlja ekstenziju bazne arhitekture ARMv4 sa Thumb skupom instrukcija. A šta je sa originalnom ARMv4 arhitekturom bez Thumb instrukcija? Ona je u stvari postojala u obliku modela ARM810 koji je imao skoro dvostruko veće performanse od generacije ARM710, petostepenu protočnu liniju, statičku predikciju grananja i podršku za MMU (Memory management unit). Ovaj model je iskorišćen kao osnova za kreiranje StrongARM linije mikroprocesora kompanije DEC, koja je imala odlične performanse, ali i znatno veću cenu. Deveta generacija predstavlja evoluciju svog prethodnika, što se lako može primetiti i po nazivima pojedinih modela koji se jedino razlikuju zamenom broja sedam sa devet. Smanjeno je rasipanje toplote i povećane su radne frekvencije.
Jedna od važnih stvari viđenih u ovoj generaciji jeste zamena Fon-Nojmanove na Harvardsku arhitekturu, što je značilo da se do tada jedinstveni keš deli na posebne delove za podatke i instrukcije. Isto tako, od generacije ARM8 je preuzeta petostepena protočna linija, što se pozitivno odrazilo na brzinu procesora. U devetoj seriji je preko modela ARM996HS viđen i zanimljiv pokušaj uvođenja Filipsove tehnologije rada procesora bez sistemskog takta, ali bez naročitog tržišnog uspeha. Još se pošteno nisu slegli ni utisci od pojavljivanja generacije ARM9, a već nas je čekala ona sa brojem deset. Inženjeri iz ARM-a nastavljaju u tada već dobro uhvaćenom ritmu i unapređuju prethodnu generaciju koristeći kao baznu verziju jezgro ARM10TDMI, ali se taj model ne pojavljuje kao poseban proizvod. S obzirom na to da je ARM9TDMI imao već dobro izbalansiranu petostepenu protočnu liniju, do dvostrukog povećanja brzine se uglavnom došlo smanjenjem broja ciklusa za izvršenje pojedinih naredbi, kao i povećanjem radnog takta procesora.
ARM1020E je nastavak modela serije ARM920 sa dvostruko većim kešom (32/32) i VFP (Vector floating point) jedinicom za računanje sa brojevima sa pokretnim zarezom (za razliku od samo celih brojeva). Dosta su mu slični modeli ARM1022E i ARM1026EJ-S, samo što prvi ima dvostruko manju keš memoriju, a drugi omogućuje ugradnju promenjive količine keša. Malo po malo, stigosmo do jedanaeste generacije ARM mikroprocesora. Ona ima potpuno redizajniranu protočnu liniju koja sada broji osam kanala i prilagođena je visokim procesorskim taktovima, kao i podršku za out-of-order izvršavanje kod pojedinih instrukcija. Uvedeno je fizičko adresiranje keš memorije, unapređeno dinamičko predviđanje grananja, kao i paralelizam kod aritmetičko-logičkih i Load/Store naredbi. Još jedna važna novost ove generacije se odnosi na integraciju SIMD seta instrukcija koji znatno ubrzava obradu DSP signala i pomaže u poslovima vezanim za mulitmediju.
Od ostalih novosti treba istaći pojavljivanje druge generacije Thumb naredbi kod modela ARM1156T2(F)-S i uvođenje tehnologije ThrustZone kod modela ARM1176JZ(F)-S. Tu je i nova AMBA (Advanced Microcontroller Bus Architecture) 3.0 sabirnica za komunikaciju hardverskih modula u SoC okruženjima. Iako se radi o sada zastareloj tehnologiji, modeli iz generacije ARM11 se i danas mogu pronaći na tržištu. Verovatno najpoznatiji primer su SBC računari Raspberry Pi Zero(W) koji se i dalje uspešno prodaju zahvaljujući niskoj ceni i solidnim mogućnostima.Poslednji predstavnik generacije u liku ARM11MPCore je doneo mogućnosti istovremenog rada sa više procesora, ali je superiorniji ARM Cortex već bio na horizontu. • • • U ovom nastavku smo se u kratkim crtama bavili istorijatom ubedljivo najrasprostranjenije mikroprocesorske arhitekture do sada, a teško da će se išta promeniti u doglednom vremenu. Prikupljanje podataka za ovaj tekst se pokazalo dosta teže od očekivanog, pošto je mnoštvo varijanti uslovilo ozbiljne varijacije u kvalitetu dostupnih informacija. U sledećem broju ćemo se baviti sa jezgrima rađenim po ARM Cortex tehnologiji koja suvereno vlada tržištima mikrokontrolera i prenosnih uređaja, zahvaljujući svojim malim dimenzijama, velikim mogućnostima, maloj potrošnji struje i niskoj ceni. Igor S. RUŽIĆ | | 




|