PIC MIPS
hg12345
hg12345 at freemail.hu
Mon Apr 24 15:50:22 CEST 2006
Ne legyen flame :-(
> >
> Persze ezért fejlett :-))
Nem biztos, hogy amit emlitettél nagy elöny és, hogy fejlettebb!
> > A PIC-nek a 1/4 futási sebessége abból adódik, hogy minden
helyen és
> > mindenkor tud müveletet végezni a memóriájával. Az AVR és ARM
> > tjpusú procik utasítás készlete regiszter bázisu, mig a PIC memória
> > bázisu.
> >
> Hát.... Azért ez az akkumulátroros móka nem egy leányálom.... Pl.
> összeadásnál az azért gáz, hogy csak a W regiszteren keresztül
lehet
> megtenni.
Miért?
A regisztereken keresztül jobb?!
Legyen két memóriába csücsülö adatod amit össze kell adni.
A regiszter bázisu utasítás esetén a kód igy nézki:
AVR/ARM : beolvasom mind két adatot a regiszterekbe majd
összeadom és tárolom újra a memóriába.
Ezt kétféle képpen tudom megoldani:
- mindent beolvasok a memóriába (A és B memoria tömböt) és
összeadom
- byte-nként olvasom be a memóriaba összeadom és az eredményt
tárolom
A memória szervezésű eszköz esetén (itt szerintem érdemes lenne már
elfelejteni az akkumulátort, mert nem ez a lényeg)
- két pointer beállítom csak azt olvasom be amit hozzákell adni a
másikhoz és elvégzem helyben a müveletet, közben a ponter
mozgatást is elvégzi.
Összehasonlitva a két utasitás készlet idejét: Vegyünk egy PIC18-st
hogy egy sulycsoportba legyenek.
AVR: beolvasás *2 + összeadás + tárolás (2x2+1+2=7 óraciklus idö)
PIC18 beolvasás + összeadás (2 utasítás => 8 óracilus)
movf POSTINC0,w
addwf POSTINC1,f ;hogy érthető legyen
Mint látható közel azonos teljesítményt ad a két eszköz.
A második tömörebb!
(Egy biztos adatokat valószínüleg minden uP-nel a memóriából kell
venni és ide kell visszatenni, ez nagy valószínüséggel a közeljövöben
nem változik :-)
>
> Értem én, csak alapvetően azt kell észrevenni, hogy ezeket a
procikat
> már nem arra tervezik, hogy gépi kódban programozgassa az ember.
A PIC18-nak a legnagyobb problémája ez, hogy a legelterjedtebb nyelv
a uC-hez a C (a jogosultsága nem vitás), a PIC18 utasítás készlete a C
stack relativ cimzéséhez nem éppen elönyös, ráadásul a 3.8K
memóriaja nem túl böséges egy ilyen kezeléshez. Ugyan az Extended
utasítás készlet pont ezt támogatja 96 byte hosszuságban szemben
az ARM 32 cimü relativ cimzésével. Nem akarom dicsérni, nagyon látszik
a kényszert a megoldáson, a HW stack kezelésre meg nincs megoldás!
Egy uj taszk váltása a teljes HW stack kiolvasásával és ujra
letöltésével lehetséges és ez több mint idöigényes. :-( Ez az AVR-ben
szerencsésebb mert a STACK a normál memoriában található és
elegendö ezt menteni és ujat betölteni a helyére....
Jól
> lehetett ezt látni mikor kijött az AVR32, a megszellőztetés múlva két
> nappal már lehetett kapni az IAR-nál a fordítót, debuggert.... Biztos
> nem 2 nap alatt csinálták :-) Az AVR-nél pedig bevallottan az IAR
> szakembereinek útmutatása alapján fejlesztették a processzort.
>
Tudtommal a C egy macronyelv, ha kicseréled a készletet már kész az
uj implementáció. (Persze egy halom bogarral....)
AVR32 BGA tokozásu, ez amit minden kis cég ültet kis sorozatban
olcson. :-).
Üdv
_______________________________________________________________________________
MP3 lejátszók már 6900 Ft-tól! A legszélesebb MP3/MP4 video lejátszó választék.
Ingyenes országos házhozszállítás! www.infopatika.hu
More information about the Elektro
mailing list