Odin D. Mlađi referent za automatizaciju samoupravljanja
Član broj: 37292 Poruke: 2549
|
sander,
dobro si rekao da ta globalna poredjenja nisu realna, ali nisam bas najbolje razumio sta pokusavas da kazes sa ovim megaherzima. U testu stoji da neki uC rade brze na 8MHz nego PIC na 20MHz. To sto taj PIC moze da radi i na 40MHz opet ne znaci nista u njegovu korist. Taj AVR iz te serije moze na max. 8MHz, ali ima i drugih varijanti iz te serije koji rade i na 16MHz. Znaci da su stavili taj drugi, PIC-u ne bi pomoglo ni tih 40MHz. Medjutim, ni to na kraju krajeva ne znaci nista ako se ne stavi u neki kontekst.
Mozda je bolji primjer kada se postmatra ista stvar realizovana na razlicitim platformama. Npr. Apple-ovi racunari na 600MHz su bili istih ili boljih performansi od Intel-ovih na 1,5GHz. Znaci radi se o istoj stvari - kucnom racunaru, i tu ima smisla da se kaze da je jedna arhitektura bolja od druge.
U navedenom testu radi se o istom RTOS-u koji je pokrenut na razlicitim platformama i dao je razlicite rezultate. Znaci, razlike postoje. Tebi i meni moze biti svejedno koji mikrokontroler cemo da upotrebimo za podizanje i spustanje garaznih vrata ili upravljanje ves masinom, ali nekome ko treba da napravi npr. dzepni navigacioni sistem ce to biti vrlo vazno. Tada vidis da postoji velika razlika izmedju 8MHz i 16MHz, jer potrosnja cipa raste sa kvadratom frekvencije (ako se dobro sjecam, a cini mi se da je tako). Tako ce ona realizacija sa 16MHz da potrosi baterije 4 puta brze od one na 8MHz.
MSP430 je i pravljen namjenski za upotrebu u portabilnim uredjajima i optimizovan je na malu potrosnju. U mom kalkulatoru je ARM procesor koji moze da radi na 203MHz ali je fabricki podesen na oko 75MHz zato sto mu baterije na 203MHz ne bi trajale ni 2 dana. On moze da mi na 203MHz izracuna neki integral za 1ms i potrosi bateriju za 2 dana, a moze da ga izracuna i na 75MHz za 3ms i da mu traje baterija 15 dana. Meni te 2ms ne znace nista jer ionako to ne mogu da primjetim, ali ako mi baterije traju 13 dana vise, to primjetim itekako. Ali ako bi na 75MHz racunao integral 5s i iscrtavao display 10s, to bih takodje primjetio. Znaci, negdje je vazno da procesor radi na sto manje megaherca, a da ipak na toj brzini sto vise posla obavi.
U nekom drugom slucaju, gdje potrosnja nije limitirajuci faktor, neke druge performanse ce da presude, ali koje, to zavisi od slucaja do slucaja i ne moze se uopsteno tvrditi sta je bolje ili gore, bez stavljanja u odredjeni kontest.
Dakle, PIC moze za tebe, shodno tvojim potrebama i mjerilima biti najbolji izbor, i ja to ne sporim, niti bih mogao sve i da hocu.
Jedino sto ja mogu, ali i to sa rezervama, da iznesem, je da u poslednje vreme trend ide ka koriscenju "jacih" procesora cak i za vrlo jednostavne aplikacije. Razlog tome je sto cijene cipova idu konstantno na dolje, a cijena programerskog rada na gore. Poslodavcima je isplativije da plate cip 50$, a da jedan programer zavrsi programiranje istog za 2 dana u C++, nego da kupe cip od 5$ a da deset programera zbijaju kod 10 dana u asembleru, jer ce ga tih 9 dana razlike u programiranju kostati mnogo mnogo vise nego 45$ razlike u cipu. A kad dodje do debagovanja onda se tek vidi koliko para i vremena kosta debagovanje u asembleru illi C-u, a koliko u C++ ili Java-i. Isto tako je skuplji programer koji programira u asembleru i koji je u stanju da razumije sta pise u datasheet-u nego onaj ko programira u Java-i i bleji u datasheet ko ja u zakon o poreskim obveznicima.
Kada se radi o velikim serijama, gdje ce uredjaj biti proizveden u npr. 10 hiljada ili 100 000 primjeraka, ili vise, onda se vodi racuna o cijenama cipova, jer na tu kolicinu to moze imati znatnu ulogu. Medjutim, cak i tada, ako uredjaj nije trivijalan, mora se uzeti u obzir ispravljanje gresaka, nadogradnja, nove verzije i tome slicno, a sve je to mnogo lakse raditi ako je cip dovoljno jak tako da postoji dovoljno preostalog slobodnog prostora za te manipulacije. A ako je upotrebljeni cip iskoriscen do maksimuma, onda se ne moze iskoristiti prethodni rad i nadograditi stara verzija, nego se mora opet poceti ispocetka, a to sve opet kosta. Kao primjer za to moze da posluzi informacija od jednog mog poznanika koji radi u jednoj firmi sto pravi liftove. Oni naravno rade liftove raznih velicina, "visina" i ostalih performansi, ali je mikrokontrolerski sistem u osnovi isti za sve liftove, bez obzira da li je to mali spori lift sa jednim vratima u stambenoj zgradi od 4 sprata ili 3 velika brza lifta sa po dvoja vrata u velikim poslovnim zgradama od 15 spratova. Jednostavno im se ne isplati da za svaku zgradu ispocetka projektuju kontrolni sistem sa minimalnim hardverom koji zadovoljava potrebe te zgrade. Jednostavnije, brze i jeftinije im je da ukucaju potrebne parametre u postojeci sistem, nego da svaki put projektuju sve iz pocetka. A posto su im svi sistemi isti, i odrzavanje je kudikamo lakse i jeftinije nego da imaju vise razlicitih platformi.
Dakle, kvalitet arhitekture i svega ostalog sto nama kao projektantima nesto znaci, nije jedini, pa cak nije ni najvazniji faktor kod izbora platforme. U IT industriji kolo vode menadzeri a ne inzinjeri, kako mnogi pogresno misle.
Ako ste imali iskustva sa neispravnom tehnickom robom elektronske prirode koja je pod garancijom, sigurno ste primjetili da ce proizvodjac radije da vam posalje odmah novi uredjaj nego da i pokusa da servisira stari. To je zato sto je obicno sam uredjaj jeftiniji nego rad strucnog lica koji ce da popravlja stari.
Korak je rekao da su mu interesantniji 8-bitni mikrokontroleri, ali ja bih rekao da su upravo 16-bitni, da ne kazem i 32-bitni danas interesantniji. Razlog, kao sto rekoh, sve nize cijene i sve vece mogucnosti. Ako se dobro sjecam, Korak je nekad ranije pitao da li ima smisla da implementira floating point u svoj prevodilac za 8-bitne uC. Za mene, to pitanje bi imalo smisla prije 15-tak godina, ali danas mislim da nema smisla. Svuda ima 16-bitnih uC-ova sa DSP podrskom, po cijenama koje se katkad i ne razlikuju od ostalih 16-bitnih ili 8-bitnih uC-ova. Zasto bi neko trosio vreme na citanje pratece dokumentacije koja ide uz sve to i vodio racuna o posljedicama toga, kad mogu da prodjem bez svega toga za par centi vise? Dobre namjere su jedna, ali zakoni trzista sasvim druga stvar.
Ako se malo zainteresujete da otkrijete sta je najskuplje u racunaru, vidjecete da je to elektro-mehanika, dakle konektori, prekidaci, kablovi i njihovo montiranje i ostale zezancije na koje se malo misli, a da su sami cipovi ustvari najjeftiniji. Znaci, jeftiniji i manji procesor obicno ne znaci da se sve na kraju da ispadne jeftinije, ako jeftiniji procesor podrazumjeva i jos neke elektromehanicke dodatke kojih ne bi bilo da je koriscen jaci procesor.
Ja sam se nekad davno registrovao na Texas Instruments sajtu, pa mi i dan danas redovno stizu mail-ovi koji me obavjestavaju o novim cipovima: mp3 koder/dekoder cija se cijena vec izrazava ne u dolarima, nego u centima, sijaset cipova za obradu slike, wireless itd, da ne nabrajam dalje. Jednostavno, izgleda da je danas najgluplje sto covjek moze uraditi je sjesti za racunar i poceti sve "izmisljati" ispocetka. Dakle, poznavanje i pracenje STANJA TEHNIKE je vrlo vazna stavka, moze vam ustedjeti mnogo vremena, a time i para.
Ja kad pocnem da razmisljam o realizaciji necega, uvijek probam da vidim da li to vec negdje postoji, ako ne onda krecem "odozgo", tj. od nekog objektno orjentisanog jezika visokog nivoa, u mom slucaju C++, i nekog procesora pogodnog za njega. Ako tako ne moze, onda idem na C i skromniji procesor, a asembler samo u "nuznoj samoodbrani" sto bi se reklo (a to se, zaista, odavno nije desilo). Meni licno na prvom mjestu po znacaju je "preostalo vreme nakon rada za namirivanje zivotnih potreba". Na kraju krajeva, ima i ljepsih stvari u zivotu od citanja datasheetova i kuckanja po tastaturi, sto se ne bi reklo, gledajuci koliko sam sada teksta otkucao :). No, vreme je dakle i za druge stvari....
Pozdrav narode, citamo se za par dana. Sve najbolje u novoj 16-bitnoj (2008) godini!
2016-te cemo valjda pricati o 32-bitnim uC-ovima....
|