četrtek, 10. januar 2013

Procesorji pametnih telefonov


Procesorji pametnih telefonov

Leta 1996 Nokia na trg izda prvi pametni telefon, Nokia 9000 communicator. Imel je maso 397 gramov in ga je poganjala Intelova 24MHz i386 CPE.

Imel je operacijski sistem, ki se je imenoval GEOS 3.0. Imel je komaj 8 MB spomina, polovica le tega je bila uporabljena za aplikacije, 2 MB za programski spomin in 2 MB za uporabnikove podatke. Takrat je bil to najzmogljivejši telefon na trgu.

Od takrat naprej je moč procesorjev pametnih telefonov strmo naraščala, leta 2007 pa so telefoni z zasloni na dotik in razmah velikih zaslonov primorala razvijalce, da so razvijali še bolj zmogljive procesorje. Takratni telefoni so imeli 620 MHz CPE in 128 MB spomina.

Ker so pametni telefoni postajali vedno bolj sofisticirani, je potreba po večji procesni moči na manjšem prostoru postajala vedno večja in tako je leta 2008 podjetje Qualcomm izdelalo prvi »System on a Chip« (SoC) procesor za mobilne naprave.

V običajnem osebnem računalniku so CPE, RAM, grafična kartica in shramba locirani na različnih lokacijah na matični plošči. V pametnem telefonu pa večino prostora zavzema baterija. Če bi hoteli povečati funkcionalnost pametnega telefona z več čipi, bi to zavzelo preveč prostora, posledično bi bile baterije manjše in manj zmogljive. S temi izzivi so se inženirji spopadli tako, da so vse osnovne komponente (CPE, GPE, spomin, brezžične radio tehnologije … ) dali na en čip (SoC).

Ta tema v originalnem besedilu je dostopna na strani: Klikni tukaj za originalno stran.

Delovanje CPE


Delovanje centralno procesne enote


Glavna funkcija centralno procesne enote je izvajanje zaporedja zapomnjenih ukazov, ki jim pravimo program. Ta program je sestavljen iz zaporedja števil, ki so zapomnjena v računalniškem pomnilniku. Pri izvajanju posameznega ukaza zasledimo naslednje korake:
·         Pridobitev ukaza (fetch),
·         Dekodiranje ukaza (decode),
·         Izvedba ukaza (execute),
·         Zapis rezultata (writeback).

V prvem koraku (fetch) pridobimo iz programa, zapisanega v pomnilniku, naslednji ukaz, ki je sestavljen iz številčne kode. Lokacijo ukaza v pomnilniku določa programski števec. Ta hrani številko, ki je enaka naslovu tekoče postavitve v pomnilniku. Programski števec torej kaže sled v tekočem programu. Ko CPE dobi ukaz, se programski števec poveča za dolžino ukaza (lahko je dolg tudi več bytov) in tako kaže na naslednji ukaz.

Ukaz, ki ga je CPE poiskala v pomnilniku, je uporabljen za to, da se ugotovi, kaj naj CPE sedaj izvede in kako naj to izvede. Del ukaza, ki mu pravimo operacijska koda, pokaže zahtevano operacijo (seštevanje, odštevanje, premik podatka ipd.), preostali del ukaza pa pove, kje se ti podatki nahajajo (npr. v registru, lahko pa jih moramo še potegniti iz pomnilnika; ali pa so kar konstanta, ki je del samega ukaza).

Zato, ker so operandi lahko tudi v kakšnem registru ali pomnilniku, je potrebno tako lokacijo primerno nasloviti. To pa določa ti. “način naslavljanja”, ki je prav tako zakodiran v ukazu.

Za korakom dekodiranja sledi korak izvajanja ukaza. Z aritmetično logično enoto (ALE) se kot vhodi in izhodi povežejo tiste komponente (predvsem registri), ki so potrebne za izvedbo zahtevane operacije. Kot že samo ime pove, so to lahko različne računske operacije, premiki med registri ali logične operacije na posameznih biti. CPE si v posebnem registru zapomni tudi stanje operacije, ki je bila zadnja zahtevana (ali je bil rezultat negativen ali nič, ali je prišlo do overflowa - prekoračitve dolžine rezultata ipd.)

Če je potrebno, vsemu temu sledi še en korak (writeback), ki morebitni rezultat izvedene operacije prepiše nazaj na lokacijo v pomnilniku. Po izvedbi ukaza se celoten proces ponovi tudi z naslednjim ukazom. Pri tem programski števec “koraka” od ukaza do ukaza, ki so zapomnjeni kot program v pomnilniku.


i7 Procesor

Sodoben i7 procesor!


Na zgornji sliki je sodoben i7 procesor. Je zelo zmogljiv in tako naprej.