[Brmlab] codenights

David Klusacek klusacek at atrey.karlin.mff.cuni.cz
Fri Dec 13 02:19:50 CET 2013



> > O thumbu jsem tedy puvodne moc mluvit nechtel, chtel jsem popisovat jen to
> > co ma v sobe tu puvodni eleganci. Ale kdyz bude zajem tak o nem taky neco
> > muzu rict. IMHO se zase tak moc nevyplati ho pouzivat krome pripadu ze
> > program bezi s FLASHe ktera je 2* pomalejsi nez takt CPU -- pak pomuze ze
> > instrukce maji polovicni delku.
> 
> ... no a este setri misto, co sa pri -Os oplati, ci ani ne?


No jenze jen tak o 20% az 30%. Sice instrukce jsou v Thumb dlouhe 16 bitu
misto puvodnich 32, ale zase jsou jen 2 adresove a bez problemu lze
pristupovat jen k prvnim 8mi registrum. Takze ve vysledku pro stejny vypocet
je jich potreba daleko vic. Takze se to hodi maximalne tak na nejakou pomalou
ridici logiku programu jehoz casti ktere pocitaji jsou napsane v 32 bit ARM
kodu. Kdyz o tom tak premyslim tak ale jeste vetsi hustoty kodu by se dalo
dosahnout treba tak, ze bych si tam dal interpretr FORTHu, highl level
logiku ridil z nej vypocetne intezivni veci mel v 32bit ARMu.

Proto tvrdim ze jediny ospravedlnitelny pripad pouziti Thumb je pomala pamet
kodu -- kdyz nacte 32bitu za 2 takty a nejaky pridavny HW mi je rozdeli na 2
16bitove casti (kazdy takt vyplivne jednu) tak jelikoz jdou instrukce hlavne 
za sebou tak procesor muze pracovat plnou rychlosti.

Lepsi je to v Thumb-2 kde nektere instrukce jsou 16bitove a jine 32bitove,
takze je to srovnatelne rychle s puvodnimi ARM instrukcemi a ma to i nektere
navic, jako treba bitove manipulace.




More information about the Brmlab mailing list