
Zitat von
stegr
Ich hab mir grade mal das Datenblatt zu deinem super-8051 mit 100 MIPS angeschaut... das lustige Teil läuft mit externen 50MHz (intern-2x-PLL), und schafft nur bei einem Viertel der Befehle die auch in einem Systemzyklus auszuführen, rund die Hälfte braucht zwei Zyklen und der Rest bis zu 8 Zyklen - soviel zu den 100 MIPS. Da der 8051 kein einheitlich langes Instruktionsformat hat, geht weitere Rechenleistung durch stalls verloren, so dass der nette Controller überschlagsweise noch rund 30 MIPS real im Schnitt hat. Das ist schon deutlich weniger, oder?
Du hast wohl vergessen, zu erwähnen, dass das beim ARM genauso ist!
Speziell bei den LPCs ist es so, dass der Flash über 20MHz nicht mehr mitkommt und jedesmal 2 Wartezyklen einlegen muss, sobald etwas nicht mehr im Cache steht. Das bedeutet, dass man bei 60MHz im Schnitt nur etwa die doppelte Geschwindigkeit erreicht wie bei 20MHz.
Viele Befehle dauern auch 2 Zyklen.
Ein simples Pin setzen in kostet 3 Befehle also insgesamt 6 Zyklen, das geht beim 8051er viel besser.
Ich hab mal testweise mit einem Timerinterrupt nur eine Variable hochgezählt, sonst nichts. Da konnte ich die Interruptfrequenz auf maximal 60 Zyklen setzen oder es gehen Interrupts verloren.
D.h. nur Interrupt betreten, Interruptflag löschen, Wert hochzählen und Interrupt verlassen kostet allein schon mal etwa 50 Zyklen -> Übel!
Was die LPCs angeht, so sind die allenfalls sinnvoll, wenn viel mit 32bit gerechnet wird. Ansonsten schneiden die schlecht ab.
Lesezeichen