Forum: Mikrocontroller und Digitale Elektronik 40 MHz PIC vs. 16 MHz Atmel


von Thomas Friedrich (Gast)


Lesenswert?

Welcher Prozessor arbeitet eigentlich schneller,
der 40 MHz PIC18F452 (externer Takt 10 MHz, intern 40) oder ein 16 MHz
Atmel. Microchip gibt den PIC mit 10 MIPS an, Atmel 16 MIPS.
Heisst das das der Atmel trotz niedrigerer Taktfrequenz sogar schneller
läuft ?

von TecDroiD (Gast)


Lesenswert?

theoretisch ja.

Die PICs haben schon immer das Problem, dass sie pro Befehl 4 Takte
brauchen, während die AVRs von anfang an darauf ausgelegt waren, bei
(fast) allen Befehlen nur einen takt zu benötigen.

von Markus Kaufmann (Gast)


Lesenswert?

Ja, der Atmel sollte schneller sein. So genau läßt sich das aber Anhand
der Mips-Zahlen nicht sagen, dazu braucht man konkrete Anwendungen.

Die Frage ist allerdings, ob beim AVR der Takt wirklich geringer ist,
da der AVR die Frequenz intern vervielfacht.

Markus

von Peter D. (peda)


Lesenswert?

Ja, der AVR ist bei 16MHz mindestens 1,6-mal schneller.

Mindestens deshalb, weil er vieles schneller machen kann. Er ist quasi
ein PIC mit 32 WREGs, d.h. er kann vieles auf die Register verteilen
und muß nicht ständig vom RAM in die Register hin- und herschaufeln.
Praktisch dürfte er also bequem doppelt so schnell sein.


Nur bei den Interrupts hat der AVR einen deutlichen Minuspunkt:
Der PIC18F unterstützt nämlich mehrere Interruptprioritäten.
Der AVR leider nicht, d.h. da kann ein einziger lahmer Interrupt das
Echtzeitverhalten der gesamten Anwendung in die Knie zwingen.


Deshalb nehme ich für größere Projekte mit mehreren Interrupts immer
noch den guten alten 8051, dessen neuere Typen 4 Interruptprioritäten
haben.
Auch bei den MIPS kann er punkten (DS89C420: 33MIPS, C8051F127:
50MIPS), aber soviel habe ich noch nie gebraucht.



Peter

von crazy horse (Gast)


Lesenswert?

im Prinzip hast du zwar Recht, aber man hat ja die Möglichkeit innerhalb
einer ISR andere Ints freizugeben. Gibts eine lahmende ISR, können in
dieser andere Ints durch Setzen von I freigegen werden. Das ist nichts
anderes als 2 Interruptprioritäten. Sehe ich keinen Nachteil des AVR.
Das einzige, was mir vom 8051 her fehlt, sind die jb/jnb/cpl
bitadr-Befehle und der djnz, aber das auch eher wegen Schreibfaulheit.
Lästig ist das fehlende parity-bit beim AVR, wenn man es denn mal
braucht.

von Matthias (Gast)


Lesenswert?

Hi

dann kommt im lahmen INT der gleich nochmal und schon knallts. Also muß
man im lahmen INT zusätzlich noch genau diesen deaktivieren bevor man I
setzt.

Matthias

von thkais (Gast)


Lesenswert?

Dann muß halt die Intelligenz des Programmierers "lahme" Ints
verhindern. Ich sehe immer zu, daß Interruptroutinen so kurz als
möglich sind.

von jens (Gast)


Lesenswert?

eigentlich kann man davon ausgehen mehr mips==schnellerer prozessor, den
mips== millionen instruktionen pro seklunde. es gibt natürlich auch
fälle, wo es biischen anders kommt. der atmel brauch für sprünge immer
2 takte (für alles andere einen). es gibt bestimmt prozessoren, die es
mit einem takt schaffen, oder auh einige dsp die in ECHT parallel
arbeiten können (nicht alles, aber einiges). z.b. im falcon ist einer
drin, der kann einige befehle in echt parallel (nicht wie dose (pc) nur
theoretisch (ausser mulitiprozessorengeräte).
soweit

von Markus Kaufmann (Gast)


Lesenswert?

@Jens:
Die AVRs brauchen nicht nur für die Sprünge zwei Takte, sondern auch
für einige andere. Die 16Mips sind also ziemlich optimistisch
gerechnet.

Die PC-Prozessoren können schon länger mehrere Befehle parallel
ausführen; da solltest Du mal Deine Propagande updaten. Insbesondere
können sie auch mehrere mathematische Operationen in einen Befehl
packen. Recht interessant hab' ich da folgendes gefunden:
http://www.fefe.de/ccccamp2003-simd.pdf

Markus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.