PIC vs ATMEL #2

VF vf at elte.hu
Thu Feb 12 01:13:26 CET 2004


Thus spake Füzesi Arnold <arno at freemail.hu>:

> Sebesseggel meg nincs gond tul nagy, mert egyszer inicializal, aztan kesz.
> Noveli csokkenti a pointert, mikozben ir-olvas.
> Asszem mar az atmega-ban is van ilyen.

Sot, az m68k-ban is volt... CISC proci, szo sincs C-re optimalizalasrol.
Egyebkent ez az egyik kedvenc feature-m az m68k-ban es az AVR-ben is,
meg ha nem is lenne hatekony, kellemesen lehet vele dolgozni, attekintheto
marad a program.
Nem kene ezeket ugy talalni, mint kulon C-hez kifejlesztett lehetosegek,
amiket asm-bol meg csak nem is lehet kihasznalni.
Probaltad? En a leghosszabb programjaimat pont ilyen procikra irtam,
eveken at... Lehet hogy ezert is szimpatikus az AVR?
Igazabol en is kivancsi lennek, hogy mit takar a C-hez fejlesztett
proci. En vagy azt latom, hogy a proci szimpatikus, logikus, letisztult
felepitesu, es akkor erdekes modon C is van ra, vagy egy agyonhackelt
ganyhalmaz, es akkor a C sem tamogatja...

> Erosen megkozelitve a kezzel irt program hatekonysagat kisebb procikon, 32
> biteseken meg egyertelmuen
> a fordito a nyero. (Nem a 32 bit miatt, hanem azoknal meginkabb tobb ilyen C
> fordito szamara kellemes dolog van)

Ez igaz. A 32 bites procikon sokkal jobban mukodnek a forditok.
Azt viszont tovabbra is tartom, hogy kezzel jobb progit lehet irni.
(Csak esetleg tobb ido a fejlesztes)

> delay-ed branch is ilyen.
> Az ugro utasitas utani utasitast meg vegrehajtja a proci.
> (Valszeg ha mar benn van a pipeline-ban alapon.)

Ez is csak annak kulonleges es misztikus, meg kezzel nem optimalizalhato,
aki sohasem probalta, csak C-ben...

> Ide tervezni embernek asm utasitast ongyilkossag...(karbantartas=0 esellyel
> megy csak gyorsan)

Miert kene karbantartani? Egyszer megirod az adatfeldolgozo ciklust.
Azt ugy megoptimalizalod, hogy valoban nem marad egyetlen felesleges
utasitas sem. Utana tobbet nem nyulsz hozza, felreteszed egy librarybe.
Gondosan vigyazol ra, mert azzal fogod megverni a C-ben nyomulo
konkurrenciat...

> Vagy nop-ot tesz (pocsekolas), vagy a fordito betesz valamit, amit nem is
> gondolnank, hogy ide kellene tenni.
> Pedig De.

Miert nem gondolnank? Lattal nehany leforditott kodot, szamodra
erthetetlen, es azt hiszed, hogy az ugy optimalis. Honnan tudod?
Bizonyara azert a 32 bites forditok is csinalnak olyan hibakat,
hogy utana kezzel tizesevel lehet kidobalni az elpocsekolt ciklusokat.
(Mellesleg szamomra is erthetetlen amit az IAR forditott, ezert is
hagytam abban a visszafejteset)

> Tudom, ez edeskeves, de sok ilyen apro dologbol osszeall, hogy a fordito
> megeszi reggelire a gyakorlott asm programozot is.

Hat persze... Majd talan 50 ev mulva, amikor a forditok _valoban_
tudni fogjak hogy mit akar a programozo.

> Elkepeszto volt, en meg se ertettem teljesen, ki kivel is dolgozik ossze a

Persze ha nem erted, akkor marad a fordito.
Ugyanez minden procin. Ha nem ismered a belso felepiteset, nem tudod
hogy nincs cmp, viszont a 0-t tudja vizsgalni, nem jossz ra, hogy a
lefele futo ciklus gyorsabb. Es sajnos a mai forditok sem jonnek ra.
Ha majd sok ev mulva kepesek lesznek erre a forditok, valoban nem lesz
erdemes ezzel foglalkozni.
Most azonban az a helyzet, hogy akarmilyen bonyolult felepitesu egy
proci, akarhany ergymastol fuggetlen vegrehajto egysege van, ha kepes
vagy megerteni, jobb kodot tudsz irni, mint egy fordito.
Alkalmankent sokkal.

> Amit egy fordito generalt....Jobbat  irni meg csak akkor tud, ha egy papirra
> rajzolja mit csinal a proci adott helyzetben.

Es annak mi akadalya van?
Ha high tech, akkor high tech. Ha ezzel tudod megverni a konkurrenciat,
miert ne tenned meg?

> Folyamatabra, vagy graf formajaban. Merthogy nem kepes "adminisztralni"
> (ertsd megjegyezni) az ember az utasitas egymasrahatasokat kodolas kozben
> fejben.

Gyakorlat kerdese...

> Illetve megforditom a dolgot. Olyan hatekony kodot tud irni, amennyi dolgot
> parhuzamosan eszben tud tartani.
> Ez meg lassuk be korlatos. Mig egy programnak nem az.

Hibas kovetkeztetes. Az AVR-ben nincs semmi parhuzamossag, tehat a
forditonak csak egyetlen dolgot kell eszben tartani, nekem is.
Megvertem a forditot. Mibol gondolod, hogy ha egyszerre 2 vegrehajto
egyseg lenne, akkor nem tudnam megverni? Lehet hogy egy ido utan papir
is kell majd, de meg lehet csinalni.

> Arnold

-- 
Valenta Ferenc <vf at elte.hu>   Visit me at http://ludens.elte.h u/~vf/
*** This advertising space is for sale ***



More information about the Elektro mailing list