2. Procesori, programski jezici i hardversko-softverske ...es.elfak.ni.ac.rs/es/Materijal/Pog.2-Procesori-HLL-HW-SW-kod-ES.pdf · 5 2. 2. 3 JAVA Java je drugi objekto-orijentisani

  • Upload
    lebao

  • View
    233

  • Download
    2

Embed Size (px)

Citation preview

  • 1

    2. Procesori, programski jezici i hardversko-softverske karakteristike

    embedded sistema 2. 1 Procesori kod embedded sistema Procesore koji se koriste kod embedded sistema esto nazivamo embedded procesori. Izbor pogodnog procesora koji se integrie u embedded sistem uglavnom zavisi od domena aplikacije tog sistema. Neke od aplikacija su artmetiko-intenzivne, druge su upravljako-intenzivne, tree su kritine za masovnu primenu sa take gledita cene ili potronje energije, i td. Imajui ovo u vidu, da bi se ostvario efikasan proizvod (dizajn), u zavisnosti od tipa aplikacije, neophodno je koristiti razliite klase embedded procesora, ije se arhitekture medjusobno razlikuju. Klase procesora koji se koriste kod embedded sistema su:

    1. Mikrokontroleri 2. RISC procesori 3. Digitalni Signal Procesori (DSP) 4. Multimedija procesori 5. Aplikaciono Specifini Procesori (ASIP) 6. Kombinovani tipovi

    2. 1. 1 Mikrokontroleri Mikrokontroleri su relativno spori ali sa aspekta iskorienja silicijuma po povrini-veoma-efikasni procesori, uglavnom namenjeni za upravljako-intenzivne aplikacije. Karakterie ih mikroprogramska CISC bazirana arhitektura, to znai da je broj taktnih intervala za izvrenje razliitih tipova instrukcija u velikoj meri promenljiv. Mo izraunavanja kao i broj memorijskih resursa je veoma ogranien, a obim rei staze-podataka relativno mali (obino 8 ili 16 bitova). Sa druge strane, kompleksnost skupa instrukcija prua odgovarajui programski interfejs, ukljuujui instrukcije za mnoenje i deljenje kao i vei broj memorijsko adresnih naina rada. Kao rezultat se dobija veoma kompaktan kd (programi su relativno mali). S obzirom da su mikrokontroleri namenjeni za upravljako-orijentisani aplikacioni domen, oni poseduju bogat skup instrukcija za manipulisanje podacima na nivou-bita, kao i periferijskim komponentama kakvi su tajmeri ili serijski U/I portovi. Veoma esto jednostavni procesori koji su se ranije koristili kao CPU-ovi u raunarskim sistemima (kakvi su, recimo procesori iz familije Intel 8051, Motorola 6502, 6811, i dr., koji su bili popularni kao CPU-ovi u kunim raunarima) danas se ponovo koriste u neto izmenjenoj formi kao mikrokontroleri kod embedded sistema. 2. 1. 2 RISC procesori RISC procesori su evoluirali od CISC arhitektura kao rezultat zapaanja da se kompleksne instrukcije kod praktinih aplikacija izvravaju veoma retko. Nasuprot CISC procesorima, RISC procesori poseduju veoma mali (ogranieni) skup instrukcija, koje se mogu izvravati velikom brzinom. S obzirom da su sve instrukcije RISC-a istog obima i da za izvrenje zahtevaju isti broj taktnih intervala, izvrenje instrukcija se moe uiniti protonim ime se postie vea propusnost u odnosu na mehanizam karakteristian za isto sekvencijalno izvrenje. Druge osobine RISC-ova su te da su oni arhitekture tipa LOAD/STORE, i da koriste veliki broj registara-opte-namene sa ciljem da se u programu smanji broj obraanja memoriji. U sutini, paljiva

  • 2

    dodela programsko-promenljivih registara predstavlja jedan od najvanijih optimizacionih zadataka koje obavlja kompilator kod RISC-ova. Ipak, za fiksnu aplikaciju, obino, obim kda (programa) RISC-a je vei od obima kda CISC-a. Tipini predstavnici RISC procesora koji se koriste kod embedded aplikacija su ARM RISC core familija, Mips RISC familija, i dr. Recimo ARM7 core je 32-bitni RISC procesor, iji instrukcioni format moe da komutira izmedju duina od 16 ili 32 bita. Arhitektura ARM-a je specijalno projektovana za nisku potronju (low-power consumption), obino reda 100 mW, to ini da ARM bude pogodan za ugradnju u prenosnim sistemima koji se napajaju baterijski. 2. 1. 3 Digitalni Signal Procesori (DSP) DSP-ovi su uglavnom projektovani za aritmetiko-intenzivne signal-procesne aplikacije. Saglasno tome, njihovi skupovi instrukcija su prilagodjeni za brzo izvrenje algoritama tipa digitalno filtriranje, FFT, i dr. Ove operacije su podrane od strane specijalnih hardverskih komponenata, kakvi su hardverski mnoai i namenske jedinice za generisanje adresa. Sa ciljem da obezbede efikasno signal procesiranje, DSP-ovi obino podravaju odredjeni stepen ILP-a, tj. odredjene kombinacije instrukcija se mogu, u svakom instrukcionom ciklusu, paralelno izvravati. Druga tipina karakteristika DSP-ova su registri-specijane-namene, tj. namenski akumulator registar i dr. Nasuprot registrima-opte-namene kod RISC-ova, korienje registara specijane-namene, kod DSP-ova, zavisi od konteksta instrukcije: Instrukcije moraju itati svoje operande iz odredjenih registara, a takodje i upisivati rezultate u odredjene registre. To dovodi do manjih komunikacionih kanjenja u stazama-podataka (tj. bri rad) i zahteva manji broj bitova za kodiranje instrukcije. Pored toga, DSP-ovi mogu da rade u specijanim aritmetikim reimima rada. Tako na primer, u reimu rada zasienje (saturation mode), pozitivni rezultati izraunavanja koji premauju obim rei koji se moe zapamtiti u registru ne generiu premaaj, tj. ne konvertuju brojnu maksimalnu pozitivnu izraunatu vrednost u domen negativni broj, kakav je sluaj kod manipulisanja sa brojevima u prezentaciji dvojinog komplementa. U konkretnom sluaju sve vredosti koje premauju najveu vrednost koju moemo predstaviti se konvertuju u najvei broj koji se moe predstaviti. Zbog neregularnosti arhitekture procesora, u odnosu na druge klase procesora, realizacija kompajlera za DSP-ove predstavlja teak zadatak, posebno ako se eli generisati efikasan kd. Najpoznatiji proizvodja DSP-ova je firma Texas Instruments (TI), koja nudi irok spektar DSP-ova za razliite domene aplikacija, kakvi su audio ili video signal procesiranje. Druge kompanije koje proizvode DSP-ove su Motorola, Analog Devices, i NEC. 2. 1. 4 Multimedija procesori Multimedija procesori predstavljaju relativno novi proizvodi na polju trita procesora, a po svojoj arhitekturi najblii su RISC-ovima i DSP-ovima. Ipak su ovi procesori namenjeni za korienje kod multimedija aplikacija, koje se pre svega odnose na procesiranje audio signala, procesiranje signala (statikih) slika, kao i procesiranje video signala (dinamikih slika). Arhitekture multimedija procesora su obino VLIW tipa. Razliite FU-ove mogu paralelno da rade, a upravljaju se od strane polja specijalnih upravljakih bitova koji su sastavni delovi instrukcija. Nasuprot superskalarnim procesorima, samo je kompilator odgovoran za eksploataciju potencijalnog paralelizma u okviru mainskog programa. Multimedija procesori, kao VLIW maine, karakteriu se visokim stepenom ILP-a, pa se zbog toga potencijalno karakteriu visokim performansama. U principu, multimedija arhitekture su znatno regularnije u poredjenju sa DSP-ovima. Tako na primer, postoje registri-opte-namene isto kao i kod RISC-ova. S obzirom da su RISC maine kao i registri-opte-namene dobro poznati koncepti kod konstrukcije kompilatora, najvei broj postojeih kompilatorskih tehnika se moe veoma uspeno iskoristiti (reused) i kod multimedija procesora. Sa druge strane, postoje osobine koje nisu svojstvene za druge klase procesora. To se pre svega odnosi na uslovne (Conditional) instrukcije koje se pre svega koriste za brzo izvrenje if-then-else iskaza, kao i SIMD instrukcije koje su pre svega namenjene za bolje

  • iskorienje resursa kod manipulisanja podacima iji je obim rei manji od obima rei sa kojima uobiajeno manipulie maina. Primeri multimedija procesora su TI 6201 (izvrava do 8 paralelnih instrukcija po ciklusu) i Philips Trimedia TM 1000 (izvrava do 5 paralelnih instrukcija po ciklusu). Polje istraivanja u ovoj oblasti je iroko, posebno u domenu keiranja efikasnih kompajlera. 2. 1. 5 Aplikaciono-specifini-procesori (ASIP) Sve klase procesora o kojima smo prethodno govoili su domen-specifini. Njihove arhitekture su prilagodjene za odredjeni domen-aplikacije , ali ne i za samu aplikaciju. Nasuprot tome ASIP (application specific instruction set processors) predstavljaju kompromis izmedju domen-specifinih procesora i ne-progaramabilnih ASIC kola. ASIP-ovi su programibilni. ali se oni uglavnom koriste samo za uzak opseg aplikacija. Ponekad se ASIP-ovi mogu parametrizirati: U konkretnom sluaju to znai da je osnovna arhitektura ASIP-a fiksna, ali se arhitektura, za datu aplikaciju, moe prilagoditi putem postavljanja (definisanja) odredjenog broja razliitih parametara. Tako na primer, obim rei se moe prilagoditi na eljenu preciznost, zatim se u zavisnosti od potreba obim RF polja moe menjati, a takodje se moe izabrati i broj specijalnih hardverskih komponenata koje treba ugraditi, tj. recimo, hardver koji podrava LOOP iskaze se moe ili ne mora ugraditi. S obzirom da su ovi parametri u najveem broju sluajeva ortogonalni, mogue je realizovati , pomou jedinstvenog ASIP-a veliki broj razliitih konfiguracija. Saglasno prethodnom, ASIP-ovi su veoma efikasni, ali je za njihov rad potreban veliki broj razliitih kompilatora.

    Slika 2.1 Regularna u odnosu na retargetable kompilacija

    Sa ciljem da se izbegnu tekoe koje realno postoje zbog velikog broja razliitih kompilatora, koriste se retargetable kompilatori, koji su u stanju da generiu kd za bilo koju ASIP konfiguraciju. Pored izvornog kda koga treba kompajlirati, retargetable kompajleri itaju model ciljnog procesora kao ulaz (vidi sliku 1). Ipak tehnika retargetabilnost (preusmeravanje-cilju) nije laka za implementaciju, jer utie na kvalitet kda. Ova oblast istraivanja je danas u intenzivnom razvoju. Primer parametrizirajueg ASIP-a je AMS Gepard DSP core, iji su parametri sledei: obim rei od 8 do 64 bita, obim programske adrese od 8 do 19 bitova, broj akumulatora od 2 do 4, i broj indeksnih registara od 8 do 16. 2. 1. 6 Druge klase procesora Napomenimo takodje da procesori koji se ugradjuju u embedded sistemima, u najveem broju sluajeva, ne pripadaju striktno samo jednoj od pomenutih klasa. Tako na primer, postoje novi mikrokontroleri RISC tipa, zatim RISC procesori kiji veoma brzo izvravaju DSP-ove instrukcije, a postoje i neki komercijalni DSP-ovi koji se mogu u ogranienij meri koristiti kao ASIP-ovi.

    3

  • 4

    Razliite klase procesora postavljaju brojne i raznorodne zahteve za korienjem razliitih tehnika kompajliranja.

    2. 2 Zahtevi za korienjem viih programskih jezika Zbog zahteva za korienjem veoma efikasnih programa na mainskom jeziku kao i nedostataka kompajlera koji generiu efikasne kdove, razvojna sredstva za generisanje kda na nivou asemblera se i dalje esto koriste kod embedded sistema, posebno na polju primene DSP-a. No embedded aplikacije postaju sve sloenije, a embedded procesori kompleksniji, tako da se kao nunost namee potreba za zamenom programiranja na asembleru sa programiranjerm na nekom od HLL-ova. Pitanje koje se sada postavlja je sledee: Koji je jezik najpogodniji za programiranje embedded procesora? Od velikog broja dostupnih programskih jezika sledei se najee koriste; C, C++, Java, i DFL. 2. 2. 1 Programski jezik C Programski jezik C se i dalje veoma esto koristi za razvoj softvera. Razlozi su sledei:

    a) iroko je prihvaen jezik, b) lako se ui, c) dostupan je za najvei broj raunarskih platformi, d) postoji veliki broj programa kreiranih na C-u

    Sa take gledita softverskog-inenjerstva glavni nedostatak C-a je taj to omoguava programiranje na vrlo niskom nivou, slino asemblerskom, a to ukazuje da je takav programski stil mainsko-zavisan. No, sa aspekta embedded sistema, ta osobina C-a je ipak atraktivna. Osobine kakve su:

    direktni pristup fizikoj memoriji korienjem pokazivaa postinkrementiranje/postdekrementirane promenljivih dirty tipovi cast-a

    se veoma esto koriste za razvoj sistemskog softvera na HLL-u. Pored toga koncept posebnih kompatibilnih modula na C-u omoguava lako ukljuenje mainsko-specifinih funkcija kreiranih na asemblerskom jeziku. 2. 2. 2 Programski jezik C++ Objektno-orijentisana varijanta jezika C razvijena je sa ciljem da se kombinuju prednosti razvoja objektno-orijentisanog softvera sa fleksibinou koju nudi C. S obzirom da C predstavlja podskup C++, ovaj jezik postepeno zamenjuje C. C++ podstie HLL stil imajui ,pre svega, u vidu klase biblioteka koje se koriste za manipulisanje sa primitivnim strukturama podataka. Takodje, sa druge strane, ovaj jezik omoguava i viestruko korienje postojeeg kda. Sa take gledita embedded sistema C++ ima i neke svoje nedostatke. Osobine jezika kakav je mehanizam throw-catch koji se pre svega odnosi na manipulisanje sa izuzecima, kao i korienje ablona za prenos netipinih funkcijskih parametara, su pogodnosti za programera koje prua ovaj jezik. No treba naglasiti da ove pogodnosti uzrokuju veliko prekoraenje u generisanom obimu kda, pa shodno tome i smanjenju performansi (tj. indirektno smanjenju brzine izvrenja programa). Imajui ovo u vidu Tehniki Komitet za Embedded C++ se sloio da je bolje koristiti pojednostavljeni C++ standard nazvan EC++, koji je pogodan za razvoj embedded softvera. Razvojna sredstva koja poseduju EC++ su ve dostupna na tritu, ali kao jezik EC++ jo nije postao iroko prihvaen.

  • 5

    2. 2. 3 JAVA Java je drugi objekto-orijentisani jezik, prvenstveno razvijen za platformsko-nezavisne aplikacije koje se mogu ivravati preko Internet-a. Saglasno tome, Java je u potpunosti mainsko-nezavisni jezik i ne podrava hardversko-orijentisane jezike elemente kakvi su pokazivai (pointers). Java generie veoma kompaktan kd koji se obino kompajlira u bajt-kd reprezentaciju, tj. medju-format (intermediate format) za koga se pretpostavlja da e biti interpretiran od strane Java Virtuelne Maine bazirane na principu rada sa magacinom (stack-based Java Virtual Machine). U kontekstu projektovanja embedded sistema Java izgleda atraktivna pre svega zbog osobine jezika koje se odnose na garbage collection kao i multithreading. No treba naglasiti da, osobine Java jezika iziskuju ugradnju specijalnih sistema za izvrenje programa (kada se Java direktno kompajlira u mainski kd), ili pak kada se ugradnju na-ipu (on chip) bajt-kd se interpretera kako bi se taj bajt-kd izvravao pomou Java virtuelne maine. Sa ciljem da se zadovolje zahtevi efikasnosti u pogledu brzine izvrenja i obima-kda kod embedded sistema, razvijeni su ogranieni Java dijalekti, kakav je Embedded Java. 2. 2. 4 DFL Data Flow Language (DFL) razvijen je za specifikaciju DSP sistema. Sintaksa DFL-a podsea na C, ali postoje specijalne jezike konstrukcije koje su korisne za opis DSP algoritama. Ove konstrukcije ukljuju specifikacije koje se odnose na sledee osobine: a) saturacija i zaokruivanje kod aritmetikih operacija; b) koncepata zakanjenih signala (delayed signals) kod realizacije digitalnih filtara; i c) mogunosti pribavljanja, u tekstualnoj formi, signal flow graph-ova, kao jednu od optih mogunosti za prezentaciju DSP algoritama. DFL se takodje koristi kao i komercijalno sredstvo za automatsko projektovanje. Na alost, i pored toga to je na polju DSP-a obezbedio neke pogodnosti za lagodno projektovanje, DFL na tritu nije doiveo neki uspeh (misli se kao sredstvo za projektovanje). Glavni razlog neuspeha predstavlja tekoa uvodjenja iskoriavanja novih jezikih standarda koji vae za uzak domen aplikacija. 2. 2. 5 Neto kao zakljuak o korienju jezika za embedded sisteme

    U principu ne postoji idealan jezik za programiranje embedded sistema, a verovatno i nee ga biti. Veliki broj tehnika za optimizaciju kda postoji danas, ali su neke od njih ipak specifine. Mi emo se ograniiti na korienju C-a kao osnova za tehnike kompajliranja. Razlozi su sledei: a) C je i dalje najpopularniji programski jezik, posebno na polju embedded sistema; b) razvoj C kompajlera je mnogo bri u odnosu na druge jezike; c) programiranje na C-u se danas koristi i kod DSP aplikacija kakve su kompresija signala govora, i dr. Takodje, C predstavlja znaajan format za medjusobnu razmenu informacije, na sistemskom nivou, izmedju sredstava za automatsko projektovanje i razvoj. Kod velikog broja Hardware/Software Codesign sredstava (na primer Cosyma), programi na C-u se generiu kao medju-format za razvoj softverskih komponenata kod embedded sistema. To znai da, i pored toga to su sistemi specificirani na vii nivo apstrakcije u odnosu na programske jezike, dobri C kompilatori su i dalje neophodni radi efikasnog preslikavanja softvera u mainski kd za embedded procesore. Konano skoriji napori sa aspekta inicijative pokrenute od strane SystemC ukazuju na neophodnost uvodjenja C++ kao platforma za modeliranje hardvera. To znai da e jezik C (zajedno sa proirenjem od C++) i pored toga to je prvobitno bio namenjen za drugi tip aplikacije, u budunosti e se sve vie koristiti kao unificirani hardversko/softverski jezik za definisanje (opis) aplikacija.

  • 6

    2.3 Ostale softversko hardverske karakteristike 2. 3. 1 Performanse Kao to smo ve ukazali vana karakteristika embedded sistema je reaktivnost, esto kombinovana sa ogranienjima koja se odnose na rad-u-realnom-vremenu. To znai da se kod embedded sistema, dogadjaji iz sistemskog okruenja moraju procesirati za fiksni iznos vremena. Da bi se zadovoljila ova ogranienja, kada se koriste visoko-performansni procesori opte-namene, u najveem broju sluajeva, to i ne predstavlja neki problem. Ipak, efikasnost, kao osobina, nalae projektantima da se ne implementiraju veoma specifine aplikacije na procesorima opte namene kakav je recimo Pentium 4 koji radi na 2 GHz. Umesto toga, kod embedded aplikacija, obino se koriste domen-specifini procesori, koje ako se efikasno programiraju, sa sigurnou e zadovoljiti postavljena ogranienja. Sa druge strane, ne postoji kompilator koji e za izvorni program proizvoljnog tipa generisati optimalni kd. Zbog toga, glavna referenca za efikasan mainski kd je asemblerski kd, runo kreiran od strane programera eksperta. Za ovakav kd smatramo da je skoro-blizak-optimalnom. Takodje, dobro je poznato da kompilatori u poredjenju sa ekvivalentnim asemblerskim kdom unose prekoraenje (overhead) koje se odnosi kako na obim kda, tako i performansi. Kada se govori o embedded sistemima, ovo prekoraenje treba da je veoma malo. Tako na primer, kod aplikacija koje su kritine sa aspekta cene, recimo aplikacija koja se moe izvravati na sistemu iji procesor radi na 2 GHz (recimo da je to PC maina), a program je kreiran na asemblerskom jeziku, nijedan od projektanata se nee osuditi da predje na procesor koji radi na 4 GHz samo zbog toga to e kompilator generisati kd koji e se samo zbog poveane brzine rada CPU-a dvaput bre izvravati. Razlog je jednostavan, treba ugraditi bru memoriju, a esto puta i bre periferale ija cena u odnosu na cenu CPU-a je obino mnogo vea. 2. 3. 2 Obim koda Kada je embedded sistem izveden kao SoC, programska memorija je integrisana sa drugim jezgrima (cores). To znai da, ako je povrina ipa fiksna, vei obim kda, tj. vea memorija e automatski zauzeti vei prostor na silicijumu. Zbog ovoga, prekoraenje koje unosi kompajlirani kd, u odnosu na asemblerski kd, treba da bude mnogo malo. U poredjenju sa sistemima opte-namene, kod kojih aplikacioni programeri ne vode rauna o obimu kda, ovakav pristup je radikalno drugaiji kod embedded sistema. Za optimizaciju kda koriste se brojne tehnike. Neke od njih imaju pozitivan afekat kako na obim kda tako i na performanse, dok kod drugih postoji kompromis izmedju ova dva optimizaciona cilja. U najveem broju sluajeva, konkretna aplikacija je ta koja diktira prioritet optimizacionog cilja. Jedan interesantan pristup za smanjenje obima programske memorije kod embedded sistema predstavlja korienje tehnike za kompresiju-kda. Ovakva ideja se sastoji u sledeem: Za poznati program izraunava se kompaktno-kodirani kd koji zamenjuje program na-ipu sa kodiranom verzijom, dok se u toku izvrenja programa pomou hardvera za dekodiranjeu realnom vremenu se obavlja dekompresija kda. 2. 3. 3 Korektnost Kao i svadruga softverska sredstva, tako i kompajleri za embedded sisteme moraju biti korektno izvedeni. To znai da kompajlirani mainski program treba da bude funkcionalno identian sa izvornim programom. S obzirom da se kompilatori kao osnovna sredstva najee koriste i za razvoj drugog softvera, od kompilatora se oekuje da imaju to je mogue manje greaka u odnosu na druga razvojna sredstva. Postoji vei broj naina koji se koriste za maksimiziranje korektnosti kompilatora. Jedan od naina predstavlja verifikacija. Kod ovog pristupa, kd iju korektnost treba verifikovati formalno se dokazuje. Ozbiljan nedostatak ovog pristupa je sledei: Dananji kompajleri su veoma sloeni, (obim

  • 7

    premauje 100 000 linija izvornog kda), tako da kompletna verifikacija je nepraktina zbog izuzetno dugog vremena izvrenja. Neto praktiniji, ali manje pouzdani, pristup validacije kompajlera je onaj koji se zasniva na simulaciji. Skoro u svim sluajevima, kompilatori za embedded procesore su tipa kros-kompajleri, to znai da oni generiu kd za ciljnu mainu koji je razliit u odnosu na kd host-kompilatorske-maine. Shodno tome, simulatori su neophodni radi emulacije ciljne maine, imajui u vidu da se instrukcije izvravaju na host-maini. Koristei skup test programa kao i test podatke, mogue je identifikovati greke kompajlera putem kompajliranja i simuliranja kda ciljne-maine, kao i kompariranjem rezultata (izlaza) programa sa oekivanim izlazom. Jedan ozbiljan problem simulacije predstavlja brzina simulacije. Najvei broj dostupnih procesor-simulatora se zasniva na klasinom pristupu interpretiranja, pri emu se instrukcije ciljne maine interpretiraju od strane instrukcija host-a na principu korak-po-korak. Pri ovome ne treba izgubiti iz vida injenicu da je proces interpretacije veoma spor. Brzina simulacije u odnosu na realnu brzinu rada moe da bude od 10 pa do 50 000 puta manja. 2. 3. 4 Retargetabilnost Ratargetable kompajleri su veoma korisni za generisanje kda kod ASIP-a, jer se time izbegava potreba za pisanjem razliitih kompajlera za razliite konfiguracije ASIP-a. Pored toga, retargetable kompajleri mogu biti od koristi i kod odredjivanja najbolje konfiguracije ASIP-a za datu aplikaciju, jer oni omoguavaju da se sagledaju efekti promene arhitekture procesora kako na performanse tako i obim generisanog kda. Na ovaj nain, u toku projektovanja sistema, mogue je uiniti dobar hardversko-softverski kompromis. Tako na primer, Tensilica nudi www-bazirani konfiguracioni mehanizam (www.tensilica.com.2000) koji se koristi za uskladjivanje osobina RISC-zasnovane ASIP arhitekture uz pomo brojnih parametara. Za svaku konfiguraciju, HDL modeli za simulaciju i sintezu, kao i generisani GNU-zasnovani C++ kompajler se mogu privui sa mree (download), i evaluirati u lokalnom reimu rada. Na ovaj nain, adekvatna procesorska konfiguracija, za odredjenu aplikaciju, se moe nakon nekoliko iteracija polu-automatski odrediti. Alternativno, retargetable estimacione tehnike se mogu koristiti za odredjivanje dobre aplikaciono-specifine arhitekture. Na ovaj nain ne postoji vie potreba za konstrukcijom (kreiranjem) kompletnih kompilatora, ali na alost to se ostvaruje po ceni manje tanosti. Sa ciljem da bude retargetable, kompilator mora, u odredjenom smislu, da bude mainski-nezavisan. Kompajler se moe prilagoditi odredjenoj ciljnoj maini kreiranjem mainsko-specifinih kompajlerskih komponenata za datu primenu, ili da se kompajleru definie model ciljne maine, za koju e on generisati kd. Na nesreu, retargetabilnost neminovno nalae potrebu da se uini kompromis koji se odnosi na efikasnost kda. Do ovoga dolazi zbog toga to kompajler polazi od nekih pretpostavki o ciljnoj maini, pa se mainsko-specifine hardverske osobine u manjoj meri mogu iskoristiti u fazi generisanja efikasnog kda. U principu, kod embedded sistema koji nisu bazirani na ASIP-ovima, nego na procesorima koji se standardno mogu kupiti na tritu (on-the-shelf processors) optimizacija kda je u prednosti u odnosu na retargetabilnost, pre svega to je sada cilj da se ispune zahtevi u pogledu efikasne implementacije. Ova situacija e se promeniti u budunosti, jer e korienje ASIP-a biti sve vee. U sutini, retargetable kompilatori su kreirani sa ciljem da generiu prihvatljivo dobar kd za sve tipove maina, ali oni sa druge strane, bar za sada, podravaju samo uzak izbor domen-specifinih procesora. Nezavisno od svega, i mainsko-specifine tehnike za optimizaciju kda je neophodno da se i dalje razvijaju, u smeru koji je u skladu sa idejom o retargetabilnosti. Pri tome, sve nove optimizacione tehnike treba, to je mogue vie, generalizovati, ali da se pri tome ne narui kvalitet kda. 2. 3. 5 Brzina kompilacije Od kompilatora se obino oekuje da budu veoma brzi. Tako na primer, GNU C kompajler na SunUltra-1 radnoj stanici karekterie brzina od nekoliko hiljada linija izvornog kda u sekundi

  • 8

    (ukljuujui pri tome i manipulacije sa U/I fajlovima), to se smatra sporom za kompajlere tipa opte-namene. Kompilatori koji se koriste kod PC maina i radnih stanica koriste optimizacione tehnike ije vreme izvrenja ima linearno, ili polinomsku kompleksnost niskog-stepena. To su u sutini brzi kompilatori, koji za ogranieni iznos vremena izvrenja generiu najbolji mogui kd. Ovo je razumljivo kada velike softverske pakete treba kontinualno odravati i aurirati, i kada efikasnost kompajliranog kda nije od primarnog znaaja. No kada se govori o embedded sistemima situacija je neto drugaija. Naime, kompilatori za embedded procesore ne treba da su projektovani za veoma brzu kompilaciju. Pre svega efikasnost embedded sistema opravdava korienje dueg vremena kompilacije. Kao primer, imajmo u vidu prednosti kompilatora koji smanji obim kda za 50%, po ceni dodatnog vremena, od jedan sat, u odnosu na program koji ima optimizirano vreme prevodjenja. Kada taj program treba ugraditi u on-chip ROM embedded proizvoda, tada je optimizacija efikasnosti viestruka. Naime, sadraj ROM-a, u toku ivotnog veka embedded proizvoda, verovatno se nee nikad promeniti, to u potpunosti opravdava dui period kompajliranja. Kao drugo, projektovanje embedded sistema ukljuuje i vreme projektovanja hardvera. Proces projektovanja ukljuuje mnogo napora i vremena potrebnog da se projektuje logika, a zatim korienjem nekog CAD alata kako bi obavio zadatak koji se odnosi na simulaciju. Projektovanje hardvera najee predstavlja usko grlo dizajna embedded sistema, pa zbog toga ne postoji potreba za korienjem brih kompajlera kod embedded sistema (najvei deo vremensko kritinih zadataka se obavlja hradverski). Sa druge strane, kod softversko-dominirajuih embedded sistema, dobar kompilator moe da bude od vee koristi od sredstava za sintezu hardvera, tako da se veliki broj projektanata sada odluuje na korienje dueg vremena kompilacije, po ceni ostvarivanja efikasnijeg kda.

  • Dodaci D2.1 Izvori disipacije snage Postoje tri glavna izvora disipacije snage kod digitalnih CMOS kola. Imajui to u vidu potronja se moe izraziti sledeom jednainom ( ) DDleakageDDscCLKDDLttotal VIVIfVVCpP ++= Prvi lan, ( CLKDDLt fVVCp ) , se odnosi na komutiranu komponentu snage, gde je:

    LC - komutirana kapacitivnost; - taktna frekvencija; - faktor aktivnosti; V - naponska promena impulsa na izlazu kola, ista kao ; - napon napajanja

    CLKf tp

    DDV DDV Drugi lan posledica je kratkog spoja koji se javlja izmeu PMOS i NMOS tranzistora kada su oni simultano aktivni, tj. struja protie od napajanja ka masi kada oba tranzistora istovremeno provode. Trei lan se javlja zbog struje curenja, , i zavisan je od tehnologije. leakageI Treba istai da dominantan uticaj ima prvi lan, to znai da ako elimo da minimiziramo potronju, a da pri tome zadrimo neophodnu funcionalnost, treba da minimiziramo , , , . (Kod CMOS digitalnih kola disipaciju snage ine dinamika (prvi lan) i statike komponente (drugi i trei lan). S obzirom da je dinamika potronja proporcionalna sa kvadratom , a statika proporcionalna sa , evidentno je da smanjenje -a vodi ka najefikasnijoj redukciji potronje energije. Skaliranjem napona napajanja, treshold voltage ( ) tranzistora treba takoe da se skalira kako bi se sauvale performanse. Na alost, ovo skaliranje dovodi do poveanja struje curenja (leakage current) koja postaje dominantni faktor od uticaja na performanse kod low-voltage high-performance circuit designs.)

    tp LC DDV CLKf

    DDV DDV

    DDV

    thV

    U cilju efikasnijeg sagledavanja ove problematike uveemo proizvod power-delay koji se moe interpretirati kao iznos potroene energije pri svakom komutacionom dogaaju (ili prelazu). Ovaj proizvod je posebno koristan kod uporeivanja razliitih stilova realizacije kola sa take gledita disipacije. Pri ovome se usvaja da je kod disipacije snage vana samo prva komponenta, pa shodno tome

    2__ DDefektivnoCLK

    total VCfP

    prelazupoenergija ==

    gde je . Ltefektivno CpC = Projektovanje kola i tehnoloka razmatranja Postoji vei broj opcija dostupnih kod izbora osnovnih kola i topologija za implementaciju razliitih logikih i aritmetikih funkcija. Odluke o izboru se donose izmeu: statike dinamike implementacije pass-gate konvencionalnih CMOS logikih stilova sinhroni asinhroni tajming. Drugi nivo izbora se odnosi na razliite arhitekturno/strukturne izbore za implementaciju date logike funkcije. Na primer za realizaciju sabiraa se moe koristiti jedna od sledeih topologija: a) ripple-carry; b) carry-select; c) carry-lookahead.

    9

  • Arhitekturni pristupi za smanjenje potronje U nekoj gruboj aproksimaciji snaga koja se disipira na nekom logikom bloku data je sledeom relacijom CLKDDdis fVCP =

    2log

    gde je: - efektivno komutirana kapacitivnost logikog kola logC - napajanje logikog kola DDV - taktna frekvencija rada kola CLKf Sa ciljlem da ukaemo kako arhitekturni pristupi utiu na potronju energije analiziraemo strukturu deo staze podataka jednog mikroprocesora koju ine sabira i komparator implementirani u 2 m CMOS tehnologiji. Ako, u najgorem sluaju, pri naponu napajanja = 5V, kanjenje signala kroz sabira, komparator i le aproksimativno iznosi 25 ns, tada u najboljem sluaju, taktna frekvencija rada dela staze podataka sa Slike D2.1 moe biti 40 MHz. Snagu koja se disipira u tom sluaju obeleiemo sa

    i ona iznosi

    DDV

    refP

    ref2

    refrefref fVCP =gde je u konkretnom sluaju = 5V a = 1/25 ns. refV reff

    L E

    L E

    L E

    C CLK

    + A+B= C

    A

    B

    K O M P A R A T O R

    Slika D2.1 Deo staze podataka

    Jedan od naina da se sauva propusnost (throughput) a da se pri tome redukuje napon napajanja je da se koristi paralelna arhitektura. Na Slici D2.2 prikazana je struktura kola koja ispunjava zahteve u pogledu propusnosti a bazira se na korienju paralelizma. Kao to se vidi sa Slike D2.2 koriste se dva identina sabiraa i komparatora.

    10

  • L E ^

    L E ^

    L E ^

    C

    CLK

    +A=B

    A

    B K

    OM

    PAR

    AT

    OR

    L E ^

    L E ^

    L E ^

    +A=B

    K

    OM

    PAR

    AT

    OR

    MU

    X

    Sel

    Slika D2.2 Paralelna implementacija dela staze podataka Poto zahtevi za brzinom rada sabiraa, komparatora i lea su sada smanjeni sa 25 ns na 50 ns, napon napajanja se moe redukovati sa 5V na 2.9V (vidi Sliku D2.3).

    1

    1.5

    2

    2.5

    3

    3.5

    4

    1 2 3 4 5 6 VDD [V]

    2.9V

    norm

    aliz

    ovan

    o ka

    {nje

    nje

    Slika D2.3 Karakteristike kanjenja logikih CMOS kola (gruba aproksimacija) Kapacitivnost staze podataka je poveana zbog potrebe rutiranja za faktor 2.15 (idealno bi bilo za faktor 2) tako da je ukupna disipirana snaga sada

    11

  • ( ) ( )

    ref

    refrefref

    parparparpar

    P

    fVC

    fVCP

    =

    =

    =

    36.02

    58.015.2 2

    2

    Pristup koji se bazira na redukovanju napajanja koristei paralelizam ima za posledicu poveanje povrine ipa i kao reenje je dobro kada ogranienja sa aspekta povrine ipa ne postoje. U optem sluaju paralelizam uslovljava ekstra rutiranje koje mora da se minimizira. Drugo mogue reenje se zasniva na korienju protone arhitekture, kako je to prikazano na Slici D2.4. Sa dva dodatna protona lea, kritini put postaje max[ , ] i obezbeuje da sabira i komparator rade pri manjim brzinama.

    sabT compT

    L E ^

    L E ^

    L E ^

    C

    CLK

    + izlaz

    A

    B

    KO

    MPA

    RA

    TO

    R

    L E ^

    L E ^

    Slika D2.4 Protona implementacija dela staze podataka

    U reenju sa Slike D2.4 kanjenja kroz sabira i komparator su jednaka, to obezbeuje da se napajanje redukuje sa 5V na 2.9V a da pri tome propusnost ostane nepromenjena. Ipak dodavanjem novih protonih leeva (u odnosu na Sliku 1) poveava se povrina ipa, a kao posledica aproksimativno efektivne kapacitivnosti je za faktor 1.15. Snaga koja se troi od strane protone obrade podataka sa Slike D2.4 iznosi sada

    ( ) ( )ref

    refrefref

    propropropro

    P

    fVC

    fVCP

    =

    =

    =

    39.0

    58.015.1 2

    2

    Sa ovom arhitekturom snaga se smanjuje za faktor od aproksimativno 2.5 u odnosu na Sliku D2.1, ali treba naglasiti da povrina dela staze podataka nije drastino poveana. Kao logiki se sada namee zakljuak do kakvih se rezultata dolazi implementacijom arhitektura koje se zasnivaju na kombinovanim korienjem tehnika protonosti i paralelizma. Strateki posmatrano, protono-paralelnu arhitekturu (udvostrueni paralelizam i udvostruena protonost) karakterie: redukcija kritinog puta a time i poveanje brzine rada za faktor 4 smanjenje napona napajanja sve dok se kanjenje ne povea za faktor 4 (vidi Sliku D2.3). Potronja snage u ovom sluaju iznosie

    12

  • ( ) ( )

    ref

    refrefref

    parproparproproparpro

    P

    fVC

    fVCparP

    =

    =

    =

    2.02

    4.05.2 2

    2

    Paralelno-protona implementacija rezultira redukciji snage od 5 puta.

    SLIKA 4

    SLIKA 4

    MU X

    A B C

    CLK

    Sel

    izlaz

    Slika D2.5 Paralelno-protona staza podataka

    Uporedni rezultati koji se odnose na razliite arhitekture opisane na primeru jednostavne staze podataka koju ine sabira i komparator su date na Slici D2.6.

    Tip arhitekture Napon Povrina Snaga jednostavna staza podataka (Slika 1) 5V 1 1

    protona staza podataka (Slika 4) 2.9V 1.3 0.39

    paralelna staza podataka (Slika 2) 2.9V 3.4 0.36

    paralelno-protona staza podataka (Slika 5) 2.0V 3.7 0.2

    Slika D2.6 Uporedni pregled karakteristika razliitih staza podataka

    Optimalni izbor napona napajanja Ve smo uoili da se iznos kanjenja kroz digitalna kola poveava kako se smanjuje napon napajanja. Pri ovome smo naglasili da kada se napon napajanja smanjuje kompenzovanje poveanog kanjenja kola se moe uspeno reiti korienjem paralelnih arhitektura. Ali treba pri ovome naglasiti da kada se napon napajanja priblii threshold vrednosti kanjenje kola se drastino poveava. Projektantima kola se sada postavlja sledei zadatak: Kako odrediti optimalnu vrednost napona napajanja pri kojoj dodatno ugraeni paralelizam ne daje vie oekivane efekte. Da bi odredili vrednost napona koristiemo se modelom koji je definisan sledeom jednainom:

    13

  • ( ) referfacerefiprefref fVCNf

    VCNf

    VCNNPower ++= 2int22

    gde je: N - broj paralelnih procesora,

    refC - kapacitivnost jednog (single) procesora,

    ipC - interprocesorski komunikacioni overhead kao rezultat uvedenog paralelizma (upravljanje i rutiranje)

    erfaceCint - overhead interfejsa koji se ne smanjuje sa brzinom ako se u arhitekturu uvede vie paralelizma U optem sluaju i su funkcije , a poboljanja sa take gledita potronje u odnosu na referentni sluaj (bez uvoenja paralelizma) se mogu izraziti kao

    ipC erfaceCint N

    ( ) ( ) 2int1

    +

    +=

    refref

    erface

    ref

    ipnormalized V

    VC

    NCCNNC

    P

    Pri malim naponima napajanja (blizu threshold-a)broj procesora (a time i overhead) obino raste bre nego to lan opada to dovodi da se sa daljim smanjenjem napona napajanja potronja poveava. 2V Drugo ogranienje koje se odnosi na smanjenje napona napajanja dolazi od noise-margin ogranienja, pri emu mora biti ispunjen sledei uslov criticaloptimalinmnoise VVV arg Na Slici D2.7 prikazan je dijagram disipirane snage normalizovan na 1 za = 5V u funkciji

    -a za razliita arhitekturna reenja kod 2.0 m CMOS tehnologije. DDV

    DDV

    0.1

    0.2

    0.7

    0.3

    0.4

    0.5

    0.6

    1.0 2.0 3.0 4.0 5.0

    VDD [V]

    norm

    aliz

    ovan

    a di

    sipi

    rana

    sna

    ga

    0.8

    0.9

    1

    IIR filtarsedmog reda

    paralelna stazapodataka

    paralelno-proto~nastaza podataka

    Slika D2.7 Optimalni napon rada Analizom Slike D2.7 se moe zakljuiti da je optimalni napon relativno nezavisan i za 2.0 m CMOS tehnologiju iznosi 1.5V. Na Slici D2.8 prikazane su normalizovane vrednosti povrina/snaga za razliite napone napajanja arhitekture sa Slike D2.7.

    14

  • arhitektura

    napon paralelna povrina/snaga (Slika 2)

    protono-paralelna povrina/snaga (Slika 5)

    IIR filtar sedmog reda povrina/snaga

    5 1/1 1/1 1/1 2 6/0.19 3.7/0.2 2.6/0.23 1.5 11/0.13 7/0.12 7/0.14

    1.4 15/0.14 10/0.11 dostie se rekurzivno usko grlo

    Slika D2.8. Normalizovana povrina/disipacija za razliite napone napajanja Strategija za smanjenje potronje U zavisnosti od tipa dgitalnih kola, sinhroni ili asinhroni, koriste se razliite strategije. Logika koja se bazira na sinhronim kolima koristi registre (leeve) koji se ubacuju izmeu stepena koji vre izraunavanje. Stepeni se realizuju kao kombinaciona logika a pamenje informacije u leevima se vri nailaskom svakog taktnog impulsa. Da bi se smanjila potronja logike zasnovane na sinhronom dizajnu neophodno je minimizirati komutatorske aktivnosti. Smanjenje ovih aktivnosti se obino izvodi tako to se komutatorske aktivnosti izvrne jedinice ne izvode kada kolo ne obavlja eljene aktivnosti. Ovo je vaan aspekt jer logiki moduli mogu komutirati i troiti energiju ak i sluaju kada se oni aktivno ne koriste. To znai da dizajn sinhronih kola treba da se bazira na specijalnim kolima kao i reenjima kojima se detektuje neaktivnost nekog logikog modula a zatim ukljuuju power-down kola pomou kojih se redukuje napon napajanja tog dela logike. Kod asinhronih digitalnih kola situacija je neto drugaija jer se njihov princip rada bazira na konceptu power-down kada ta kola nisu aktivna. Skaliranje napona napajanja Energija koja se troi po prelazu, ili power-delay proizvod, kod CMOS kola proporcionalna je sa

    . Na Slici D2.9 prikazan je dijagram normalizovanog power-delay proizvoda za dva kola (ring-oscilator i 8-bitni ripple-carry sabira).

    2V

    15

  • 0.03

    0.05

    0.7

    0.1

    0.2

    0.5

    1 2

    VDD [V]

    5

    1

    1.5

    8-bitni ripple-carrysabira~

    51-stepeniring-oscilator kvadratna

    zavisnost

    Slika D2.9 Power-delay proizvod za dva razliita kola Napomena: Slika D2.9 je data u log-log razmeri Kao to se vidi sa Slike D2.9 smanjenje napona napajanja kod date logike familije ima za efekat kvadratno poboljanje power-delay proizvoda. Na alost, smanjenje napona napajanja ima svoju cenu. Na Slici D2.10 prikazan je efekat koji ima smanjenje -a na kanjenje za razliita logika kola (sloenost logikih kola u zavisnosti od funkcije koju ona obavljaju se menja od 56 do 44000 tranzistora, ali je bitno to to sve krive ukazuju na to da postoji identina zavisnost).

    DDV

    16

  • 1.0

    1.5

    4.0

    2.0

    2.5

    3.0

    3.5

    2.0 4.0 6.0

    V DD [V]

    4.5

    5.0

    7

    generator taktnih impulsa

    sabira~

    20-bitna staza podataka

    5.5

    6.0

    6.5

    7.5

    norm

    aliz

    ovan

    o ka

    {nje

    nje 24-bitni mno`a~

    Slika D2.10 Karakteristike kanjenja za razliita logika kola za 2.0 m CMOS tehnologiju Napomena: Sloenost kola u odnosu na broj tranzistora je sledea - 20-bitna staza podataka ima ugraeno 44802 tranzistora, 24-bitni mnoa ima 20432 tranzistora, sabira ima 256 a generator taktnih impulsa 56 tranzistora. Prosto reeno, smanjenjem -a poveava se kanjenje koje je drastino kada se pribliavamo threshold naponu. Tana analiza kanjenja je sloena zbog nelinearne karakteristike CMOS gejta, ali za grubu aproksimaciju prvog reda vai da je

    DDV

    ( )2TDDOX

    DDLDDLd

    VVL

    WC

    VCIVCT

    =

    =

    Dok power-delay produkt za 8-bitni sabira izveden u 2.0 m CMOS tehnologiji za razliite stilove (pass-tranzistor logic, conventional static, dynamic logic) je prikazan na Slici D2.11.

    17

  • 3

    5

    70

    10

    20

    50

    10 30 100

    ka{njenje (ns)

    100dynamic logic

    conventional static logic

    pass-transistor logic

    8-bitni sabira~2.0 m

    pow

    er-d

    elay

    pro

    izvo

    d (p

    J)

    Slika D2.11 Power-delay proizvod za razliite stilove

    U fazi optimizacije arhitekture za low-power dizajn treba tretirati kao promenljivu veliinu a pri tome menjati arhitekturu tako da se odri konstantna propusnost.

    DDV

    D2.2 Baterije Podela U zavisnosti od naina upotrebe (korienja) baterije delimo na:

    primarne- namenjene da se pune jedanput, koriste se dok se ne isprazne, a nakon toga se bacaju sekundarne imaju mogunost da se ponovo pune i prazne vie puta

    Osobine Ukazaemo sada na nekoliko kljunih karakteristika baterija vanih sa aspekta eksploatacije. 1. Energy density je mera koja pokazuje koliko energije baterija moe da uva u zadati volumen ili masu. Ova mera se moe iskazati na sledea dva naina:

    Volumetrijska energy density se obino meri u watthours per liter (Wh/L) Gravimetrijska energy density se meri u watthours per kilogram (Wh/kg)

    2. Memory effect - Neke od sekundarnih baterija poseduju osobinu poznatu kao memory effect. Naime, ako se ove baterije koriste dok se u potpunosti isprazne, tada se one mogu ponovo napuniti do

    18

  • 19

    njihovog poetno deklarisanog kapaciteta. No ako su ove baterije delimino isprazne pre ponovnog punjenja one pokazuju osobine redukcije energetskog kapaciteta. Nakon veeg broja punjenja i pranjenja ove baterije e postati potpuno beskorisne. 3. Cycle life ukazuje na broj ciklusa punjenja i pranjenja koju baterija moe da podnese pre nego to postane neupotrebljiva. 4. Working voltage dostupan napon od jedne elije koji je odredjen hemijskim sastavom baterije. 5. Self discharge brzina sa kojom se baterija sama po sebi prazni kada je neiskoriena. Tehnologija baterije U praksi obino sreemo sledee tipove baterija:

    Ni-Cd najee korien oblik. Ove baterije se karakteriu high-energy current i koriste se za ugradnju u uredjajima koji mogu da pokretaju male motore. Memorijski efekat, high-self-discharge rate, i low-energy density su loe osobine ovih baterija, to ih ini neupotrebljivim za cellular phones i notebook computers.

    Alkaline- imaju energy-density neto bolju od Ni-Cd, i uglavnom se koriste kao baterije za

    jednokratnu upotrebu. Postoje i recharchable tip ovih baterija ali njihova energy-density brzo opada sa viestrukim punjenjem.

    Ni-MH Nickel Metal Hybride baterije se uobiajeno koriste kod cellular phones i notebook

    computers jer je njihova cena prihvatljiva, a energy-density je relativno visoka. Na alost self-discharching rate je visoka to ih ini neogodnim za odredjene aplikacije. Ovaj tip baterije je dugo bio most izmedju Ni-Cd i lithium ion-skih, ali je izgubio primat zbog pada cena lithium-skih baterija.

    Lithium-ion- karakterie se velikim energy-density. Standardno se koriste kod cellular-nih

    telefona i notebook raunara. Veoma su tanke (do 0.5 mm). Zadnjih godina cena im je drastino pala.

    Lithium polymer karakterie se high energy density i mogu se formirati (oblikovati) u razliite

    oblike ime se izvrsno uklapaju sa formom (oblikom) proizvoda.

    Photovoltaic cells- konvertuju ambijentalno svetlo u elektrinu energiju i mogu se koristiti za low-power devices kakvi su kalkulatori.

    Fuel cells konvertuju hydro-carbon u elektrinu energiju i imaju veoma visoku energy density.

    Ponovno punjenje ovih elija slino je punjenju upaljaa. Imaju od 3 do 5 puta bolju energy density u odnosu na lithium ion-ske baterije , ali su nepraktine za apikacije koje se odnose na prenosive elektronske uredjaje.

  • 20

    Kritine metrike za tehnologiju baterije Ni-Cd Ni-MH Li-ion Li-polymer radni napon (V) 1,2 1,2 3,6 3 energy density (Wh/L)

    120 240 260 264

    energy density (Wh/kg)

    50 60 115 250

    cycle life 300 800 300 800 1200 1200 memorijski efekat da da ne ne cena ($/Wh) 1 1,3 2,5 2 Implementacija proizvoda Najbolja tehnologija baterije za prenosive elektronske uredjaje se odredjuje u fazi procesa analize proizvoda. Projektant mora pri tome da napravi pravi balans izmedju high energy capacity, male dimenzije baterije (small form factor), i cene, kako bi napravio uspean proizvoodni koncept. Da bi reenje uinio realnim, proizvodja mora da sagleda formu (oblik) baterije, zahteve za ponovnim punjenjem /zamena, mehaniku montau, konektore, i power management elektronikom. Postoji mnogo oblika (formi) baterija. Standardne forme su AA, AAA, C i D celije, lithium-ske button cell baterije koje se takorei mogu kupiti u svakoj prodavnici. Ovi tipovi baterija su poeljni ako elimo da one budu lako zamenljive od strane irokog kruga korisnika. Sa druge strane, lithium ion-ske i Ni-MH su dostupne u razne forme (pravougaone, ne cilindrine, i dr.) kao i neke forme koje se prave po narudbini.

    D2.3 Mikrokontroleri vs mikroprocesori

    Bez sumnje najvaniji faktor koji je imao dominantni uticaj na masovno korienje raunara u industriji predstavlja razvoj mikroprocesora. Mikroprocesor je u sutini raunar na ipu.

    Da bi obavili koristan zadatak, sistemi zasnovani na mikroprocesorima prve generacije zahtevali su ugradnju velikog broja dodatnih komponenata (oscilatore, adresne leeve, leeve za podatke i druga LSI kola relativno male sloenosti). Kasnije, napredak na polju VLSI tehnologije doveo je do proizvodnje mikroraunarskih sistema kod kojih su sva neophodna kola bila ugradjena (embedded) u relativno mali broj prateih integrisanih kola (tipino su to bili integrisane CPU jedinice relativno velike sloenosti, kontroleri prekida, DMA kontroleri, tajmeri, UART-i, programibilni paralelni periferni interfejsi (PIA), i dr.). Kao plod dalje integracije nastaju jedno-ipni mikrokontroleri koji u sebi imaju ugradjeno analogni i digitalni ulazno-izlazni podsistem, tajmere i brojae, LCD drajvere i druge logike.Time su ova kola, takorei bez dodatnog hardvera, sada bila u stanju da obavljaju relativno sloene upravljake funkcije koje se odnose na rad sistema u realnom vremenu. Primeri ovakvih tipova mikrokontrolera su Intel 8051 i 8096, Motorola MCH 68HC11, Microchip PIC 18F1x20, i dr. Ovi ipovi su pre svega razvijeni za potrebe automobilske industrije, procesne industrije, elektromedicine, telekomunikacija, robe iroke potronje, i td.

    Mikrokontrolere delimo na 4-, 8-, 16-, i 32-bitne. Ilustracije radi, 4-bitni mikrokontroleri uglavnom se koriste u automatima za igru, 8-bitni kao programatori u ve mainama, 16-bitne sreemo u sistemima za upravljanje klimom u kolima, a 32-bitni se primenjuju da obave sloene telekomunikacione funkcije u mobilnim beinim uredjajima. Osnovne karakteristika mikrokontrolera su:

  • 21

    1. usadjeni (built-in) ROM- najee kapaciteta 4 kB na samom ipu u kome se uva upravljaki program,

    2. usadjeni RAM- najee kapaciteta 128 B, koji se koristi za uvanje privremeno promenljivih, 3. CPU koji je, zbog efikasnijeg korienja ograniene programske memorije, u stanju da izvrava

    instrukcije koje manipuliu sa jedininim bitovima, 4. veliki broj mikrokontrolera ima usadjeno koprocesor Boole-ovog tipa. Ovaj koprocesor zajedno sa

    CPU-om ima mogunost da pojednostavljeno implementira Boole-ove izraze koji se veoma esto javljaju u upravljakim aplikacijama,

    5. mikrokontroleri imaju usadjene ulazno-izlazne portove koji se koriste za efikasno upravljanje, kao i jednostavnu i laku interakciju sa spoljnim uredjajima.

    U daljem tekstu ukazaemo na osnovne karakteristike mikrokontrolera bez ulaenja u detalje koji se

    odnose na specifinosti njihovih realizacija. ta su mikrokontroleri?

    Svi dananji raunari su realizovani od istih gradivnih blokova. To su centralni procesor ili CPU, memorijski podsistem, ulazno-izlazni podsistem, generatora taktne pobude, i sistemska magistrala koja medjusobno povezuje pomenute gradivne blokove. Sistemska magistrala se sastoji od adresne magistrale, magistrale podataka, i upravljake magistrale.

    Najvei broj standardnih raunara, kakav je na primer PC maina, se smeta u jedistveno kuite. Periferije kakvi su tampa, displej, skener, tastatura, mi, i druge se povezuju na raunarski sistem preko konektora koji su montirani na kuitu. Druge sistemske komponente kakvi su diskovi, memorije proirenja, mrene kartice i dr., su locirane u samom kuitu ili pak na osnovnoj ploi (motherboard) raunara.

    Mikroprocesor je integrisano kolo ili ip lociran na osnovnoj ploi koje u sutini predstavlja CPU raunarskog sistema. Uglavnom svet PC maina je taj koji je bio glavni pokreta razvoja sistema baziranih na mikroprocesorima. Imajui u vidu ovakve zahteve za mikroprocesore kaemo da su u novije vreme postali relativno specijalozovane komponente, posebno pogodne (prilagodjene) za veoma brzo manipulisanje podacima.

    No kod odredjenih aplikacija veoma esto je neophodno ugraditi odredjeni iznos lokalnog procesiranja na licu mesta procesa. Tako na primer, automat za izdavanje karata na autobuskim stanicama treba da ima odredjeni nivo autonomnosti u radu (pameti) tako da za unete podatke preko lokalne tastature sam izrauna cenu karte i izda je. Zbog ovakvog naina rada raunarske maine opte namene ne predstavljaju dobro reenje (izbor) za ovakav tip aplikacije, prvenstveno zbog velikog gabarita (dimenzije) maine, a takodje i zbog visoke cene. Upravo su ovo idealne aplikacije za mikrokontrolere. Nasuprot mikroprocesorima, mikrokontroleri su vie orijentisani ka postizanju superiornijih performansi kod aplikacija namemjenih upravljanju, bezbednosti i pouzdanosti u radu. Imajui u vidu da je cena uredjaja baziranih na mikrokontrolerima od izuzetne vanosti za krajnjeg korisnika, mikrokontroleri su integrisali na ipu veliki broj standardnih periferala, kontrolere raznih tipova uredjaja, kao i memoriju. Na osnovu prethodnog mogli bi da kaemo sledee: Mikrokontroler je raunar na ipu. On sadri skoro sve osnovne gradivne blokove raunarskog sistema (CPU, ROM, RAM, U/I periferije tipa AD i DA konvertore, serijske komunikacione interfejse (UART), paralelne interfejs portove (PIA), tajmere/brojae, LCD drajvere, i dr.) koje se mogu integrisati na jedinstvenom ipu. Danas su mikrokontroleri najvie prodavan tip procesora. Ne bez razloga projektanti sistema relativno male sloenosti kau da su to ipovi upravo projektovani po njihovoj meri, tj. ipove o kojima sanjaju.

    Nasuprot mikroprocesorima, cena mikrokontrolera je veoma niska (do nekoliko dolara u odnosu na cenu od stotinu dolara kakva je cena mikroprocesora). Za odredjene aplikacije niska cena mikrokontrolera je idealno reenje.

    Taktna frekvencija na kojoj rade, obim adresibilne memorije, i obim podataka sa kojima manipuliu varira od jednog mikrokontrolera do drugog, ta vie i kod jednog istog proizvodjaa, tako da je posao projektanta da izabere najbolji mikrokontroler za datu aplikaciju.

  • 22

    Drugi vaan razlog korienja mikrokontrolera, u odnosu na PC mainu, predstavlja njegova kompaktnost koja se moe iskazati konstatacijom: Raunar na jednom ipu. Svi mikrokontroleri imaju usadjenu memoriju na ipu kao i vei broj ulazno-izlaznih interfejs linija. Veliki broj mikrokontrolera poseduje AD i DA konvertore, impulsno-irinski modulisane (PWM) generatore, sofisticirani sistem prekida, vei broj seriskih i paralelnih ulazno-izlaznih portova, fleksibilni sistem tajmer-broja dogadjaja, LCD drajver, i dr.

    Mikrokontroleri se danas koriste u embedded sistemima za upravljanje raznim funkcijama koje sistem treba da obavi. Na primer, u dananjim automobilima ugradjuje se veliki broj (reda 100) mikrokontrolera koji se koriste za upravljanje radom koionog sistema, ubrizgavanjem goriva, klima sistemom za grejanje-hladjenje, prikazom informacije na pokaznoj tabli, i td. Drugim reima, jedno-ipni raunar omoguava projektantima da ugrade raunar u bilo kom uredjaju koji postavlja makar i minimalne zahteve za odredjenim iznosom izraunavanja.

    Mikrokontroleri se veoma esto koriste i u situacijama kada treba da se veoma brzo reaguje na spoljne signale- posebno ako se takvi sistemi koriste za rad u realnom vremenu- pa zbog toga koriste procesiranje bazirano na obradu prekida. Mikrokontroleri mogu takodje da rade po nadzorom operativnih sistema za rad u realnom vremenu (RTOS) iji je obim manji, pri emu ovakvi sistemi bolje reaguju (za kree vreme) na odzive sistema koji se odnose na rad u realnom vremenu, nego to je to sluaj sa operativnim sistemima opte namene koji se instaliraju na veim mainama kakve su recimo PC maine. Mikrokontroleri: tipovi arhitektura i blok ema Arhitekture mikrokontrolera se mogu podeliti na sledea dva tipa:

    1. Harvard tip- karakterie se razdvojenim memorijama za program i podatke. Svaki tip memorije ima svoj sopstveni fiziki adresni prostor i koristi sopstvenu internu adresnu magistralu. Prednost ove arhitekture je ta to se pristup programskoj memoriji i memoriji za podatke ostvaruje konkurentno. Obvakvim pristupom se skrauje ukupno vreme izvrenja programa. Proizvodjai mikrokontrolera Microchip, Zilog, National Semiconductor i Cypress zasnivaju svoje proizvode na Harvard arhitekturi, mada postoje neke neznatne ali vane razlike u pristupima kako ove kompanije implementiraju arhitekturu. Arhitekture ovih mikrokontrolera su tipine za RISC pristup.

    2. Princeton tip (tzv. von Neumann)- programska memorija i memorija za podatke dele isti adresni prostor. To znai da se instrukcioni kd moe izvravati kako iz programske tako i iz memorije za podatke. Poznati proizvodjai ovih tipova mikrokontrolera su Intel, Atmel, Motorola i dr. Kljuna osobina ovih proizvoda je povean broj instrukcija i adresnih naina rada koji u kombinaciji sa relokatibilnim softverskim magacinom (stack) omoguavaju efikasno korienje programskog jezika visokog nivoa C. Arhitekture ovih mikrokontrolera su tipine za CISC pristup.

    Mikrokontroleri i digitalni signal procesori (DSP) su poznati tipovi aplikaciono integrisanih

    procesora (ASIP). U sutini mikrokontroler je mikroprocesor koji je optimiziran za embedded upravljake aplikacije. Kod ovakvih aplikacija se obino nadgledaju (monitoriu) i postavljaju brojni jedno-bitni upravljaki (control) signali, a pri tome se ne obavlja neko intenzivno izraunavanje nad podacima. Zbog ovoga mikrokontroleri imaju jednostavne staze podataka (datapaths) koje su prilagodjene za brzo izvrenje operacija na nivou-bita (bit manipulation) kao i operacija itanja i upis sadraja bitova sa spoljnih pinova ipa. Pored jednostavne CPU, na istom ipu, mikrokontroleri imaju inkorporirano nekoliko periferalnih komponenata tipine za upravljake aplikacije, kakve su serijske komunikacione periferije, tajmere/brojae dogadjaja, PWM generatore, AD i DA konvertore, i dr. Pored ostalog programska memorija i memorija za podatke su takodje inkorporirane na samom ipu.

  • Inkorporiranjem periferala i memorije na istom integrisanom kolu smanjuje se broj dodatnih integrisanih kola koje treba ugraditi u sistem, to rezultira kompaktijoj implementaciji i globalno posmatrano smanjenoj potronji, tj reenje postaje tipa low-power. injenica da se programskim putem moe direktno pristupati spoljnim pinovima ipa omoguava da program moe lako da monitorie stanje senzora, postavlja u definisano stanje aktuatore, i vri prenos podataka ka/iz drugih uredjaja. Veliki broj proizvodjaa naziva mikrokontrolere embedded procesore. Razlika izmedju embedded procesora i mikrokontrolera esto nije jasna, mada se u strunoj literaturi termin embedded procesor najee koristi za vee (32-bitne) procesore, a termin mikrokontroler za manje (4-, 8-, i 16-bitne) procesore. Opti blok dijagram mikrokontrolera je prikazan na slici D2.12.

    RAM

    bajt-adresibilni ROM

    Fle EEPROM

    memorijski sistem

    centralna procesorska

    jedinica - CPU -

    sistem za analogno-digitalnu

    konverziju

    sistem za analogno-digitalnu

    konverziju

    Unapredene karakteristike:sistem distribuiranog procesiranjaimpulsno irinska modulacija

    Dodatne karakteristike:DA i AD konvertorisat realnog vremenaLCD interfejs

    sistem za serijsku

    komunikaciju

    sistem za proirenje. . .

    port A port B port X. . .

    Slika D2.12 Blok dijagram mikrokontrolera Mikrokontroleri u odnosu na mikroprocesore

    Da bi ukazali na to kakva razlika postoji izmedju mikroprocesora i mikrokontrolera analiziraemo sliku D2.13 koja predstavlja jedan detaljan blok dijagram mikroracunarskog sistema.

    Dok je mikroprocesor (CPU) integrisana komponenta na jedinstvenom ipu, sam mikrokontroler,na jedinstvenom cipu ima integrisano CPU, RAM i ROM memoriju i ostale ulazno-

    23

  • izlazno orijentisane gradivne blokove (paralelni i serijski interfejsi, tajmeri, logika za prihvatanje prekida, A/D i D/A konvertore i dr.).

    Slika D2.13. Detaljni blok dijagram mikroraunarskog sistema Struktura mikroprocesora Na slici D2.14 prikazan je blok dijagram mikroprocesora.CPU ine sledei blokovi:ALU, PC, SP, odredjeni broj radnih registara, kola za taktovanje i sinhronizaciju i kola koja se koriste za prihvatanje zahteva za prekid.

    24 Slika D2.14: Blok dijagram mikroprocesora(CPU-a)

  • Da bi se kompletirao mikroraunarski sistem pored mikroprocesora potrebno je dodati ROM, RAM memorijske dekodere, oscilator, odredjeni broj ulazno-izlaznih uredjaja kakvi su paralelni i serijski portovi za podatke, A/D i D/A konvertore i drugo. Pored ulazno-izlaznih uredjaja specijalne namene, esto se javlja i potreba da se ugrade i kontroleri prekida, DMA kontroleri, kao i brojaci/tajmeri iji je zadatak da oslobode CPU-a od obavljanja U/I aktivnosti. Kada se u sistem instaliraju i uredjaji za masovno memorisanje (hard disk, CD drajver), kao i tastatura, mis i CRT displej, tada se taj ''mali racunar'' moze koristiti za razlicite aplikacije opste namene. Osnovna namena CPU-a je da pribavlja podatke, obavlja izraunavanja nad podacima i memorise rezultate izraunavanja na disku, kao i da za potrebe korisnika prikae te rezultate na displeju (CRT, TFT, LED i dr.). Programi koje koristi mikroprocesor memorisani su na disku odakle se itaju i smetaju u RAM. Deo programa, najee malog obima, se obino smeta i u ROM-u. Struktura mikrokontrolera Blok dijagram mikrokontrolera prikazan je na slici D2.15. Mikrokontroler je u sutini pravi ''mali raunar'' na ipu, koji sadrzi sve gradivne blokove CPU-a (ALU, PC, SP, registre i dr.), ali takodje i RAM, ROM, paralelne i serijske U/I portove, generatore takta i dr. Kao i mikroprocesor, i mikrokontroler je uredjaj opte namene, koji pribavlja podatke, obavlja ogranienu obradu nad tim podacima, i upravlja svojim okruenjem na osnovu rezultata izraunavanja. Mikrokontroler u toku svog rada koristi fiksni program koji je smeten u ROM-u i koji se ne menja u toku ivotnog veka sistema.

    Slika D2.15. Blok dijagram mikrokontrolera

    25

    Mikrokontroler koristi ogranien skup jedno- ili dvo-bajtnih instrukcija koje se koriste za pribavljanje programa i podataka iz interne memorije. Veliki broj ulazno-izlaznih pinova mikrokontrolera se moe koristiti za vie namena, to se softverski definie.

  • 26

    Mikrokontroler komunicira sa spoljnim svetom (pribavlja i predaje podatke) preko svojih pinova, pri emu je arihitektura i skup instrukcija projektovan za manipulisanje sa podacima obima bajt ili bit. Razlike izmedju mikroprocesora i mikrokontrolera Razlike su brojne ali one koje su najvaznije su sledee:

    1. Mikroprocesori najcee CISC tipa za kopiranje podataka iz spoljne memorije u CPU koriste vei broj op-kdova, dok mikrokontroleri jedan ili dva.

    2. Za manipulisanje sa podacima tipa bit mikroprocesori koriste jedan ili dva tipa instrukcija, dok kod mikrokontrolera taj broj je vei.

    3. Mikroprocesori su projektovani za brzi prenos podataka iz programa sa spoljno adresiranih lokacija u ip, dok se kod mikrokontrolera brzi prenos bitova obavlja u okviru ipa.

    4. Mikrokontroler moze da funkcionie kao raunar bez dodataka spoljnih gradivnih blokova (memorije i U/I uredjaja), dok operativnost mikroprocesora bez spoljne memorije i U/I podsistema nije mogua.

    D2.4 Tajmeri i brojai kao gradivni blokovi mikroproceosra i mikrokontrolera

    Tajmer-kolo je periferno kolo koje je u stanju da meri vremenske intervale. Ovakvo kolo se moe koristiti da:

    a) generie dogadjaje u specifinim vremenskim trenucima. Tipine aplikacije su one koje se odnose na ukljuenje crvenog/utog/zelenog svetla na semaforu za specificirani vremenski period, recimo crveno svetlo traje 20 s, uto 3 s, a crveno 15 s.

    b) odredi vreme trajanja izmedju dva spoljanja dogadjaja. Obino aplikacije ovakvog tipa sreemo kod merenja brzine kretanja vozila, tj., meri se vremenski interval koji je potreban da bi limuzina prela izmedju dva senzora na putu, pri emu su senzori razmaknuti za poznato rastojanje.

    U principu treba praviti razliku izmedju pojmova tajmer i broja, a ona se sastoji u sledeem:

    1. Tajmer je kolo koje meri vreme putem odbrojavanja taktnih impulsa poznate periode koji se dovode na ulazu ovog kola. Tako na primer, ako je perioda pobudnog taknog impulsa 1 s, a izbrojano je 5000 pobudnih taktnih impulsa, to znai da je prolo vreme od 5 ms.

    2. Broja predstavlja generalnija verzija tajmera. Naime, umesto da odbrojava taktne impulse generisani od strane internog oscilatora CPU-a, broja broji impulse koji su generisani od strane nekog drugog, obino spoljneg, generatora signala. Tako na primer, broja se moe koristiti za brojanje broja vozila koja prolaze na nekoj deonici autoputa, pri emu je svaki prolaz detektovan od strane odgovarajueg senzora. Broja se takodje moe koristiti i za brojanje ljudi koji ulaze ili izlaze u/iz neke prostorije.

    Veoma esto u cilju merenja brzine okretanja nekog tela mogue je kombinovati korienje brojaa i tajmera. Tako na primer, kod merenja brzine kojom se okree rotor neke maine tajmer se moe koristiti za generisanje referentnog vremenskog intervala merenja, recimo 1 s, a broja za merenje broja impulsa koji odgovaraju ukupnom broju okretaja rotora u trajanju od 1 s. Kada projektant hoe da koristi tajmer-kolo neophodno je prvo da programer konfigurie njegove ulaze, a zatim da nadgleda njegove izlaze, tj. da ga konfigurie kao tajmer ili broja. Da bi se obavio ovaj zadatak potrebno je poznavati internu strukturu tajmer-kola, koja moe u znaajnoj meri da varira od jednog do drugog proizvodjaa. Standardne strukture koje se odnose na izvodjenje tajmer-kola prikazane su na slici D2.16.

  • Slika D2.16. Strukture tajmer-kola: (a) osnovni tajmer; (b) tajmer/broja dogadjaja; (c) tajmer sa krajem

    brojanja: (d) 16/32-bitni tajmer; (e) tajmer sa preskalerom Napomena: CLK- ulaz taktnog signala (impulsi generisani od strane strane internog oscilatora CPU-a); kb- izlaz kraj brojanja; br_ul- brojaki impulsi generisani od strane spoljneg izvora; mode- reim rada; =- komparator; MUX-

    multiplekser

    Struktura jednostavnog tajmera je prikazana na slici D2.16 a). Tajmer se sastoji od jedan 16-bitni broja koji inkrementira svoju vrednost nakon nailaska svakog taktnog impulsa. Izlazna vrednost brojaa izl odgovara broju pobudnih impulsa CLK nakon to je broja zadnjeg puta bio resetovan na nulu. Da bi interpretirali ovaj broj kao vremenski interval neophodno je da znamo frekvenciju ili periodu taktnog pobudnog signala CLK. Tajmer sa slike D2.16 a) ima jedan dodatni ulaz kb. Trenutak generisanja impulsa kb na ovom izlazu ukazuje da je broja dostigao svoju vrnu vrednost brojanja, alternativno nazvana premaaj. Nakon ovog trenutka broja prelazi u stanje kada je izl postavljen na nuli, a nailaskom narednih pobudnih impulsa CLK produava sa brojanjem. Obino se izlaz kb dovodi na ulazni pin INTR CPU-a. U tom sluaju usluna rutina za obradu prekida odbrojava broj puta za koji je ta rutina pozvana, ime se na jedan indirektan nain procenjuje protekli vremenski period. Veliki broj mikrokontrolera ima usadjeno tajmere u svoju strukturu, a takodje i specijalne INTR linije za tajmere koje se razlikuju od spoljnih INTR linija. Sa aspekta korienja tajmera neophodno je da projektant razume korienje sledea dva parametra. Prvi se odnosi na opseg (range) , koji predstavlja maksimalni vremenski interval koga tajmer moe da odbroji, a drugi rezolucija, to je minimalni interval koga tajmer moe da odbroji. Ilustracije radi, neka je frekvencija signala CLK 10 MHz, to znai da je perioda ovog signala 100 ns, i ako izlaz tajmera u trenutku kada smo njegovu vrednost proitali iznosi izl = 40000, to znai da je od poetka reseta do tog trenutka prolo 40*103*100*10-9= 4 ms. S obzirom da je broja sa slike 1 a) 16-bitni, on moe da broji od vrednosti 0 do 65535. Za konkretan sluaj merni opseg se kree od 0 do 65535*100 ns = 6,5535 ms sa rezolucijom od 100 ns.

    Struktura sa slike D2.16 b) predstavlja neto unapredjeniju verziju tajmera koji se takodje moe konfigurisati kao broja. Izlaz jedno-bitnog registra mode (postavlja se softverski) se dovodi na ulaz multipleksera MUX. Multiplekser bira tkatnu pobudu za 16-bitni broja. Kada je selektovan interni ulazni signal CLK struktura sa slike D2.16 b) se ponaa kao tajmer, a za sluaj da je selektovan spoljni signal

    27

  • 28

    br_ul struktura se ponaa kao broja odbrojavajui pri tome pojavu impulsa na ulazu br_ul. Signal na ulazu br_ul se obino dovodi od nekog spoljneg izvora, pri emu nailazak impulsa na ovom ulazu se obino deava u vremenskim neodredjenim (nedefinisanim) intervalima (kakav je recimo izlaz detektora prolaska vozila na autoputu). To znai da u konkretnom sluaju nije mogue meriti vremenski interval kada se broje impulsi na ulazu br_ul ako njihova perioda nije poznata.

    Struktura tajmera sa slike D2.16 c) se koristi da informie sitem kada je istekao pojedini vremenski interval. Registar kraj-brojanja (postavlja se softverski) uva vrednost broja koja odgovara eljenom vremenskom intervalu. Na primer, ako je perioda podudnog signala jednaka 100 ns, a elimo da generiemo trajanje od 4 ms, tada treba da odbrojimo 40000 impulsa. Sastavni deo struktura sa slike D2.16 c) je kolo komparatorkoje generie impuls kb. Impuls kb se koristi da resetuje broja na nuli i informie korisnika tajmera da je istekao eljeni vremenski interval. Izlaz kb se najee vezuje na ulaz INTR CPU-a. prekidna rutina u tom sluaju peuzima odgovarajue akcije koje se odnose na istek specificiranog vremenskog intervala.

    Sa ciljem da se povea efikasnost strukture sa slike D2.16 c), umesto da tajmer broji navie od vrednosti 0 pa do specificirane (softverski definisane) vrednosti u registar kraj-brojanja se upisuje specificirana vrednost pa se sada umesto tehnike brojanja unapred koristi tehnika brojanja unazad. To znai da se nakon reseta broja postavlja na specificiranu vrednost odbrojavanja. U konkretnom sluaju broj odbrojavanja se detektuje kada vrednost brojaa dostigne vrednost nula. Hardver za detekciju nule se realizuje kao 16-bitno (ulazno) NOR kolo (ili kombinaciona mrea koja obavlja istu funkciju) koje je sa aspekta povrine na Silicujumu i potronje-energije znatno efikasnije reenje u odnosu na 16-bitni komparator. Struktura sa slike D2.16 d) obezbedjuje da se tajmer moe konfigurisati kao 16- ili 32-bitni tajmer. Tajmer koristi izlaz kb1 sa svog prvog 16-bitnog brojaa navie kao taktni ulaz za drgi 16-bitni broja. Ova veza se naziva kaskadna veza vrojaa.

    Na slici D2.16 e) prikazan je tajmer koji u svoju strukturu ima ugradjeno i preskaler. Preskaler je u sutini konfigurabilno kolo koje deli taktni pobudni signal CLK. U zavisnosti od softverski postavljene vrednost u registru mode moduo deljenja preskalera moe biti 1, 2, 4, 8, i td. Na ovaj nain preskaler se koristi da proiri opseg tajmera po ceni redukcije rezolucije. Tako na primer, ako je frekvencija impulsa CLK jednaka 10 MHz, to odgovara rezoluciji od 100 ns, a moduo deljenja preskalera je 8, to znai da e tajmer biti u stanju da meri vremenski interval u opsegu od 0 do 52,427 ms sa rezolucijom od 800 ns.

    Strukture tajmera kod razliitih mikrokontrolera mogu da variraju. Uglavnom se modifikacije odnose naugradnju dodatnih konfigurabilnih osobina )karakteristika). Jedna od tih osobina se odnosi na ugradnju dodatnog mode-bit flip-flopa koji dozvoljava ili zabranjuje brojanje. Drugakarakteristika se tie ugradnje flip-flopa koji dozvoljava ili brani generisanje prekida kada broja dostigne kraj brojanja. D2.5 Multi-core: brojne opcije za poboljanje performansi

    Iz teorije je poznato da raunar sa dva ili veeg broja jezgara (multi-core) na jedinstvenom ipu moe da ima superiornije performanse u odnosu na raunar sa jednim jezgrom (single-core). Osnovni moto uvodjenja koncepta baziranog na paralelnoj obradi je taj da se disipacija ipa znaajno ne povea. Pri tome, operativni sistem i tip aplikacije moraju biti uskladjene sa zahtevima i izazovima koji se postavljaju pred projektantima, ako se eli da brojne opcije koje se nude od strane multi-core-a budu efikasno iskoriene. Normalno, sada se postavlja sledee pitanje: Koji tip multi-core procesiranja je najpogodniji za datu aplikaciju.

    U ovom vremenskom trenutku, prva decenija 21-og veka, kada je taktna frekvencija ipova, ini se sa take gledita tehnologije, dostigla neku svoju krajnju vrednost (granicu) logino se postavlja sledee pitanje: Koja je nova faza u evoluciji na polju procesorske tehnologije. Zahvaljujui konceptu paralelizma, poznat jo iz vremena razvoja skupih paralelnih raunara, dual-core procesori kao kandidat arhitekture ine moguu distribuciju zadataka na dve raunarske jedinice, to u globali ukazuje na dupliciranje performansi. Disipacija snage (potronja energije) kod dual-core procesora u principu ostaje takorei ista kao i kod jedno-procesorskih sistema. U odnosu na single-core, raunar tipa dual-core deli

  • 29

    posao na dva dela, pa zbog toga dual-core potencijalno nudi znaajne beneficije sa aspekta performansi/watt-u, kao i bolju iskorienost hardverskih resursa.

    Multi-threading

    Na polju multi-core procesiranja pravi se jasna razlika izmedju sledee dve tehnologije:

    maltitasking- mogunost da se istovremeno izvrava vei broj aplikacija, multithreading- mogunost da se zadaci podele na vei broj pod-oblasti (sub-areas), a zatim da se

    te pod-oblasti distribuiraju razliitim CPU-ovima. Teoretski posmatrano, idealna situacija postoji kada imamo multithread & multitasking

    kombinacije koje se izvravaju na multiprocesorskim ili multi-core sistemima. Na alost suvie multiple-a esto puta u znaajnoj meri dovodi itaoca i projektanta do konfuzije. Zbog toga, analizirajmo ovaj problem tako to emo posmatrati sistem u jednom vremenskom koraku: To obino znai da softver koji je zasnovan na korienju multithreading tehnike procesiranja po automatizmu se bre izvrava jer ima pristup veem broju procesora ili core-ova iz prostog razloga to koristi paralelizam. Projektanti pojedinih aplikacija od kojih se zahteva visoka-raunarska propusnost moraju da prilagode softver za multi-threading procesiranje ime se obezbedjuje da multi-core sistemi budu optimalno iskorieni. Ovakvi sluajevi se najee javljaju kod sistema od kojih se zahtevaju visoke-komunikacione performanse, ili kod sloenih medijalno/procesnih primena (multimedijalne i grafiki bazirane aplikacije). Multitasking

    Postoje brojne aplikacije koje se ne mogu izvravati na nekom jedno-procesorskom sistemu iz

    prostog razloga to izvrenje jednog zadatka blokira izvrenje drugog. Ovakav sluaj posebno postaje kritian kod aplikacija koje se odnose na rad sistema u realnom vremenu, tj, kod onih primena koje koriste usluge browser-a ili firewall-a.

    Multitasking sistem moe paralelno i bez konflikta da izvrava vei broj zadataka koji pripadaju razliitim programima. Ovakvi sistemi sa aspekta cene instaliranog hardvera su jevtiniji u odnosu na klasine paralelne sisteme. U ovom trenutku, idealno reenje, bez sumnje, predstavlja kombinacija dveju tehnika kave su multi-threading i multitasking koje se mogu uspeno implementirati na multi-core sistemu. Kada se projektuje odgovarajue multi-core procesiranje, sledea dva osnovna modela (u saglasnosti sa zahtevima) predstavljaju dobar izbor za multi-threaded i multitasking aplikacije:

    simetrino multi-procesiranje, asimetrino multi-procesiranje.

    Simetrino multiprocesiranje

    Kod simetrinog multi-procesiranja (SMP- symmetric multi-processing) postoji jedinstvena instalacija operativnog sistema koja se ravnopravno izvrava od strane svih core-ova, a takoe sve aplikacije se mogu izvravati od strane bilo kog core-a. Na slici D2.17 prikazano je simetrino multi-procesiranje na dual-core sistemu.

  • Slika D2.17. Model simetrinog multiprocesiranja

    Simetrino multiprocesiranje (vidi sliku D2.17) tipino se sree kod server aplikacija, gde realno

    postoje potrebe za istovremeno korienje tehnike rada bazirane na multi-threading i multi-tasking konceptima. Kao to se vidi sa slike 1 postoji jedinstveni operativni system, koji dodeljuje resurse pojedinim aplikacijama kada je to potrebno, ime se ostvaruje najbolja mogua iskorienost hardvera. Sredstva za trasiranje rada na nivou sistema (planeri) mogu da planiraju redosled izvrenja threade-ova i vode rauna o operativnim statistikama (opteretljivost core-ova) kao i o interakcijama u aplikaciji za ceo multi-core ip, ime se olakava proces debagiranja i optimizira aplikacija. Sinhronizacija aplikacija je jednostavna, umesto sloene inter-procesorske komunikacije (IPC Inter Processor Communication) koriste se standardne funkcije operativnog sistema. SMP predstavlja najjednostavniji oblik multiprocesiranja, pa prvenstveno zbog svoje jednostavnosti on se veoma esto koristi kod velikog broja aplikacija.

    U sluajevima kada se zahteva procesiranje signala u realnom vremenu, kao i sloena vizuelizacija rezultata procesa, SMP ne predstavlja dobar izbor. Asimetrino multi-core procesiranje

    Asimetrino multi-core procesiranje (ASMP Asymmetric Miltiprocessing) se koristi kod onih aplikacija koje se ne mogu izvravati na single embedded sistemima (vidi sliku D2.18).

    Slika D2.18. Model asimetrinog multiprocesiranja

    30

  • 31

    Kod ASMP-a, poseban operativni sistem ili posebna instalacija istog operativnog sistema se izvrava na svakom procesorskom core-u. Kod asimetrinog multi-core procesiranja mogue je unapred odrediti kako e se izmeu individualnih core-ova izvriti alokacija (dodela) hardverskih resursa. Za specifini hardver se unapred odreuje kakvog e tipa biti i kog e tipa biti, i statiki se u toku faze projektovanja, dodeljuje odredjenom core-u. Dodela memorije procesorima se vri na fizikom nivou, na primer od lokacije X do lokacije Y dodeljuje se core-u 1, od lokacije Y do lokacije Z core-u 2 itd. Slian pristup alokacije vai i za periferije kao i obradu prekida, tj. koji e se prekid prihvatati i obraivati od strane kog core-a. U sluaju kada se dodela resursa vri dinamiki koristi se IPC-ov koncept sinhronizacije izmeu core-ova, to u sutini uslonjava projektovanje sistema. Kod ASMP sistema, jedan zadatak se uvek procesira od strane istog core-a, ta vie i u sluaju kada je drugi core slobodan. Pored toga, moe da se desi da su odreeni core-ovi u potpunosti iskorieni (over-utilised), a drugi slabo iskorieni (under-utilised), no aplikacije e se uvek izvravati sigurno (bez greaka) i nezavisno jedna od druge. Ovaj oblik multiprocesiranja obezbeuje utedu hardvera kada se ovakvi sistemi koriste u industrijskim aplikacijama gde formalno, zbog heterogenosti procesora nije mogue bilo koji od procesora generie rezultat kojim se vri odredjeni tip upravljanja. Na primer, aplikacija obrade signala u realnom vremenu i sve aktivnosti koje se odnose se mogu izvravati na jednom core-u, a vizuelizacija na drugom core-u. I pored toga to ovaj tip reenja normalno ne daje optimalno reenje sa aspekta ukupnih performansi, ono to je vano je sledee: Kritina injenica je ta da asimetrine procedure omoguavaju (dozvoljavaju) da se obavi procesiranje tipa 2-u-1 na jedan siguran i efikasan nain. U budunosti, napredkom tehnologije, panja istraivaa e se sve vie usmeravati sa implementacije dual-core procesora na multi-core procesore, tako da e procesiranje 4-u-1 ili 8-u-1 biti mogue. Debata oko toga da li su kod dual-core oba core-a u potpunosti iskoriena ili nisu nije od presudne vanosti. Asimetrina procedura omoguava aplikaciji da direktno pristupi kako jednom tako i drugom core-u, a implikacije koje pri tome slede su sledee: na primer, uz pomo virtuelizacione tehnologije, ako su dostupna dva jezgra, oba jezgra je mogue integrisati u jedinstveno abstraktno jezgro. Na ovaj nain aplikacija za rad u realnom vremenu koristie sada usluge oba core-a na ravnopravan nain, to je od izuzetne vanosti kod projektovanja kompleksnih sistema upravljanja, jer u tom sluaju ne treba voditi rauna o alokaciji zadataka core-ovima. Asimetrina procedura je jedina kod koje se dva razliita operativna sistema mogu paralelno izvravati (koordinirati). Zbog ovoga, ona se esto koristi kod operativnih sistema namenjenih za rad u realnom vremenu. Kako se pri tome broj dostupnih core-ova poveava, neophodno je integrisati virtuelizacionu tehnologiju kod koje je jedino mogue na efikasan nain distribuirati homogene aplikacije na multiple core-ove. U budunosti e kombinacija asimetrine i simetrine procedure obezbeivati korisnu alternative kada su dostupna vie od dva core-a. Virtuelizaciona tehnologija Virtuelizaciona tehnologija je elemenat dual-core tehnologije i predstavlja kljunu oblast koja je razliita u odnosu na poznate tehnologije. Ona pojednostavljuje upravljanje hardverom, oslobaajui projektante aplikacija od manipulisanja sa IPC-ovima. ta vie, Intel, implementira virtuelizacionu tehnologiju (VT Virtualisation Technology) kao standard na sve svoje nove platforme. VT omoguava veem broju operativnih sistema i aplikacija da se u nezavisnim particijama izvravaju na jednoj platformi kao virtuelne maine. Ove particije se mogu, u zavisnosti od zahteva, dodeljivati aplikacijama radi izvrenja, ta vie i u toku rada (dinamiki), a ne samo statiki. Visok nivo abstrakcije takoe dozvoljava aplikacijama da budu premoene sa jednog servera na drugi, mogunost koja je bila do skoro nezamisliva za realizaciju, a predstavlja kljunu beneficiju kod embedded IT upravljanja. Konano, virtuelizacija takoe nudi opciju integrisanja operativnih sistema koji formalno rade u stand-alone reimu rada (tipini ovakvi predstavnici su kontrolni sistemi, firewall-ovi, ili data serveri) u jedinstveni sistem, ali u potpunosti izolovani od drugih reenja. Ovakav pristup u reavanju problema enormno doprinosi utedi u ceni proizvoda.

  • 32

    Opti principi za primenu svih metoda Nezavisno od izabranog metoda, projektanti dual-core sistema, na primer, znaajno redukuju obim zadataka (koda) ili threade-ova kada koriste paralelno programiranje. Na ovaj nain maksimizira se granularnost strukture i ostvaruje optimalna iskorienost dostupnih resursa. Sa druge strane, zadaci po svojoj prirodi mogu da se izvravaju nezavisno, ali da bi se generisao korektan rezultat neophodno je da postoji razmena informacije izmeu zadataka. Da bi se reio problem saradnje-izmeu-zadataka moraju se definisati pravila za njihovu komunikaciju. Ovo je od posebne vanosti u sluajevima kada jedan zadatak eka od drugog da mu preda podatke kako bi on nastavio sa svojim radom, a da pri tome ne doe do potpune meusobne blokade, tj. deadlock-a (i drugi eka od prvog da mu preda podatke). Kljuna stvar, u ovom sluaju, predstavlja integritet distribuiranih akcija. Imajui u vidu da paralelno programiranje moe da ubrza aplikaciju ili pak da dovede do zastoja u radu, investicije na polju obuke projektanata sa ciljem da oni postanu eksperti u ovoj oblasti, je bez sumnje od izuzetne vanosti, jer to ima direktni uticaj na uspeh proizvoda, u ovom trenutku baziranog na dual-core, a u budunosti bez sumnje na multi-core konceptu. U principu projektanti OEM (Original Equipement Manufacturing) sistema svoju glavnu panju treba da usmere na prednosti koje se nude ovakvim pristupom, a ne toliko na injenice da li je procesor X bolji od procesora Y. Izbor procesora (core-a) je uglavnom diktiran od toga ta proizvoai OEM sistema nude u datom trenutku na tritu, a ne od toga ta je optimalno potrebno. D2.6 Multiprocesorski sistemi na ipu Moe se slobodno rei da, danas, poetkom 21 veka, multiprocesorski sistemi na ipu (MultiProcessor Systems-on-Chips- MPSoCs) predstavljaju zadnje dostignue VLSI tehnologije. Trenutno, jedinstveno integrisano kolo (integrated circuit- IC) moe da ini do 100 miliona tranzistora. Organizacija kakva je International Technology Roadmap for Semiconductor, koja istrauje nove mogunosti tehnologija i izazova u proizvodnji IC-ova, predvidja da e se ip od milijardu tranzistora proizvesti u skoroj budunosti. Upregnuti svu sirovu mo izraunavanja, koju mogu da prue udruene snage od milijardu tranzistora, zahteva sada od projektanata da premoste granice logikog projektovanja i da se usmere ka principima koji su danas aktuelni kod projektovanja raunarskih arhitektura. Zahtevi, koji se od strane aplikacija, postavljaju za realizaciju ovakvih ipova, iziskiju od projektanata da se suoe sa novim problemima koji su, takorei, do jue bili neuobiajeni i za projektante tradicionalnih arhitektura raunara, a to su: krajnji rokovi izvrenja zadataka u realnom vremenu, mikropotronja, i td. Ove mogunosti i izazovi ine da MPSoC dizajn predstavlja jedno izuzetno vano polje istraivanja. ta su to MPSoC-ovi Kao prvo, definisaemo pojam sistem-na-ipu (System-on-Chip: SoC). SoC je IC koje implementira najvei broj, ili sve funkcije kompletnog elektronskog sistema. Osnovna karakteristika SoC-a je njegova kompleksnost. Ilustracije radi, memorijski ip moe da ima mnogo tranzistora, ali ga njegova regularna struktura ini da to bude komponenta, a ne sistem. U sutini koje e se komponente asemblirati u SoC zavisi od tipa aplikacije. Najvei broj SoC-ova sadri analogna i mixed-signal kola koja su deo U/I podsistema, no postoji i veliki broj SoC-ova koji su isto digitalni. U principu SoC sadri memoriju, jedan ili vei broj CPU-ova, specijalizovanu logiku, magistrale, i druga kola koja obavljaju specijalizovane digitalne funkcije. U optem sluaju arhitektura SoC-a, za razliku od sistema opte namene, je prilagodjena aplikaciji. Na SoC-ovima je baziran veliki broj kategorija proizvoda poev od uredjaja iroke potronje pa sve do industrijskih sistema. Tako na primer:

  • 33

    Celularni telefoni koriste nekoliko programibilnih procesora koji se u okviru telefonije primenjuju za obavljanje zadataka tipa signal procesiranje i manipulisanje podacima u saglasnosti sa zahtevima protokola. Imajui u vidu da su ovakvi uredjaji, u najveem broju sluajeva prenosivi, mobilni, i da se baterijski napajaju, imperativ je da ovakve arhitekture budu tipa micro-power.

    U telekomunikacijama i umreavanju koriste se specijalizovani SoC-ovi, kakvi su mreni procesori, koji manipuliu sa velikim brzinama u toku prenosa podataka.

    Digitalna televizija koristi sofisticirane multiprocesorske sisteme koji obavljaju dekodiranje signala slike i govora u realnom vremenu, a takodje i reaktivno izvravaju funkcije interfejsa prema korisniku.

    Televizijski proizvodi koriste SoC-ove radi kodiranja video informacije. Za kodiranje video visoke-rezolucije zahteva se ekstremno brzo procesirsnje u realnom vremenu.

    Video igre koriste po nekoliko sloene paralelne maine da bi u realnom vremenu mogle da obave procesiranje tipa rendering, animaciju, i dr.

    Sve nabrojane aplikacije ne koriste raunarske arhitekture opte-namene iz prostog razloga to

    maine opte namene nisu jevtine i to ne mogu da postignu (ostvare) potrebne (eljnene) performanse. Cena uredjaja opte namene treba da je ekstremno niska. Tako na primer, digitalni video disc (DVD) plejer se prodaje po ceni od 45 eura, a to znai da je zarada od ovog proizvoda relativno niska. Sa druge strane, maine opte namene ne mogu zadovoljiti zahteve za brzinim procesiranjem koji se postavljaju od strane video- i mrene-opreme.

    ta je u sutini MPSoC)? To je jednostavno SoC kolo koji sadri vei broj CPU-ova. U praksi, najvei broj SoC-ova su MPSoC-ovi, iz razloga to je veoma teko projektovati kompleksan SoC bez korienja veeg broja CPU-ova. Ukazaemo u daljem tekstu na racionalnost korienja multiprocesora.

    Prvo pitanje koje se postavlja projektantima sistema je sledee: Zbog ega su performanse vane? U sutini kod najveeg broja primena SoC-ova performanse su precizno definisane. Kod tradicionalnih raunarskih sistema prvenstveno se vodi rauna o brzini, a ne o krajnjim rokovima. Sa druge strane, upravljaki sistemi, protokoli, i najvei broj realnih sistema ne vode rauna o prosenim performansama nego o krajnjim rokovima. Najvei broj SoC-ova se upravo koristi u aplikacijama koje se odnose na rad u realnom-vremenu, tj. sistema kod kojih treba da se ispune zahtevi u pogledu krajnjih rokova. Pored toga od projektanti hardvera se zahteva da ispune zahteve u pogledu sinhronizacije kao i broja taktnih intervala za koji odredjeni zadatak treba da se izvri.

    Ponovo pitanje: Zbog ega mora da se vodi rauna o potronji energije? Kod baterijski napajanih uredjaja, cilj je da se produi ivotni vek baterije. Kod ne-baterijski napajanih uredjaja projektanti mora i dalje da vode rauna o potronji energije jer ona direktno utie na cenu. Ako uredjaj troi mnogo energije tada se on dosta i zagreva. Iznad odredjene radne temperature, ip mora da bude izveden na keramikom pakovanju. Keramika pakovanja su znatno skuplja u odnosu na plastina.

    injenica da je MPSoC multiprocesor znai da projektovanje softvera predstavlja nerazdvojni deo ukupnog dizajna ipa. Ovakva reenja predstavljaju veliku ansu i za one projektante ipa koji se suoavaju sa hardverskim reenjima. Kod MPSoC-a, kako hardver tako i softver se moe uspeno iskoristiti za reavanje problema. Vano je da reenje zadovolji zahteve u pogledu performansi, potronje, i vremena potrebnog da se projektuje kolo. Projektovanje softvera za MPSoC predstavlja bez sumnje velika ansa za projektante softvera. Softver mora da bude tako projektovan da ispuni veliki broj projektanskih ogranienja koja su obino rezervisana za hardver, kakva su stroga (hard) vremenska ogranienja i ogranienja koja su u vezi sa potronjom energije. Meanje hardversko softverskih disciplina je jedno od najinteresantnijih izazova kod projektovanja MPSoC-ova.

  • 34

    D2.7 Paralelizam na nivou instrukcija

    Uvod

    Paralelizam na nivou instrukcija (Instruction Level Paralelellism ILP) definie se kao jedinstvo izmedju hardverskog dizajna procesora sa jedne strane, i softverskih tehnika, koje se odnose na dizajn kompilatora, sa druge strane. Jedinstvo ima za cilj da ostvari paralelno izvrenje veeg broja individualnih mainskih operacija kakve su recimo memorijske operacije tipa Load i Store, operacije za manipulisanje sa celobrojnim vrednostima kakve su Add, Mul, Div, operacije za manipulisanje sa brojevima u pokretnom zarezu Addf, Mulf, Divf, i druge. Jedan klasian ILP procesor karakterie se istim tipom izvrnog hardvera kao i standardna protono organizovana RISC maina. Razlike izimedju maina koje iimaju implementirano ILP i one koje nemaju sastoji se u sledeem: ILP procesor umesto jedne funkcionalne jedinice koja se koristi za manipulisanje sa celobrojnim-vrednostima / brojevima-u-pokretnom-zarezu / adresiranje-memorije / upravljanje-tokom-programa, ima ugradjeno vei broj takvih funkcionalnih jedinica. Osnovna karakteristika ovog tipa paralelizma ogleda se u injenici da kod ILP procesora nije potrebno koristi neki poseban stil programiranje nego je kriranje programa identino kao i kod sekvencijalnih/skalarnih procesora. Nasuprot tradicionalnom multiprocesorskom paralelizmu i masivnom paralelnom procesiranju, kod kojih je pisanje programa eksplicitno podredjeno paralelizmu, kod ILP procesora kreiranje programa je transparentno u odnosu na arhitekturu i identino je kao i kod svih sekvencijalnih/skalarnih maina. Ilustracije radi, VLIW i superska