Forum: Mikrocontroller und Digitale Elektronik f030 viel langsamer als f103 ?


von Markus (Gast)


Lesenswert?

Der STM32F030 kommt bei mir beim selben Whestone Benmard auf 2.15Mips 
während der STM32F103 auf 7.63 Mips kommt.

Wie kann das sein, es haben doch beide einen M0 Core,

von Cyblord -. (cyblord)


Lesenswert?

1.) F1 haben einen M3 Core, nicht M0.
2.) Die F0 können nur 48 MHz, die F1 bis zu 72 MHz.

von Markus (Gast)


Lesenswert?

2.) Die F0 können nur 48 MHz, die F1 bis zu 72 MHz.

72MHz/48MHz = 1,5
7,63/2,15  ~= 3,5

Die niedrigere Taktfrequenz würde nur den Faktor 1,7 erklären.

von Markus (Gast)


Lesenswert?

1,5 meine ich

von Stefan F. (Gast)


Lesenswert?

Da steckt ja mehr hinter, als nur die Taktfrequenz. Die beiden haben 
unterschiedliche Befehlssätze und die gleichartigen Befehle werden 
unterschiedlich schnell abgearbeitet.

Nur mal so zum Vergleich: Mein aktueller Laptop ist mit 2 Kernen zu je 
1,3GHz fast genau so schnell wie mein alter, der 2 Kerne zu je 2,2GHz 
hatte. Und der alte war auch noch 4 mal so teuer!

von Markus (Gast)


Lesenswert?

Ok
STM32F030 => M0, 48Mhz
STM32F103 => M3, 72Mhz

Ihr haltet also den Faktor 3.5 in der Geschwindigkeit anstatt 1.5 für 
realistisch?

Wodurch ist der M3 so viel schneller?

von tzhgfhgrhzfghz6453454353453534534533453453 (Gast)


Lesenswert?

https://de.wikipedia.org/wiki/ARM_Cortex-M

andere pipeline und anderer befehlssatz

zumal der benchmark nur im RAM läuft?
mit Flashzugriff reduziert sich der geschwindigkeitsvorteil wieder etwas

aber gerade bei viel multiplikation im benchmark ist der M0 im nachteil.
er hat zwar einen hardwaremultiplier ...
aber oft mehrere taktzyklen
der M3( oder > ) kann das in einem takt.

von Markus (Gast)


Lesenswert?

Ich meine in einem der Datenblätter gelesen zu haben, dass STM M0 
Cortexe mit "single cycle muliplier" verwendet.

von M. K. (sylaina)


Lesenswert?

Markus schrieb:
> Ich meine in einem der Datenblätter gelesen zu haben, dass STM M0
> Cortexe mit "single cycle muliplier" verwendet.

Und was steht wirklich drin? Ich erinnere mich auch gern mal an falsche 
Sachen bzw. verwechsel gern was. Schau doch erstmal ins Datenblatt ;)

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Details finden sich in den Programming Manuals:
PM0215 F0
PM0068 F1
PM0214 F4

Bitte auch nicht vergessen, dass es sich um Benchmarks handelt, also 
künstliche Aufgabenstellungen. Im reellen Leben bestimmen noch ganz 
andere Faktoren die Eignung des Bausteins für einen bestimmten Zweck.

von Dr. Sommer (Gast)


Lesenswert?

Der F1 ist ja auch oll. Vergleich mal mit dem F7 wenn du wirklich 
Rechenleistung brauchst...

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Ausserdem erzeugt GCC schlechten Code für M0/M1/M23:
https://embdev.net/topic/426508

von Cyblord -. (cyblord)


Lesenswert?

Uwe B. schrieb:
> Ausserdem erzeugt GCC schlechten Code für M0/M1/M23:
> https://embdev.net/topic/426508

Jaja...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Cyblord -. schrieb:
> 2.) Die F0 können nur 48 MHz, die F1 bis zu 72 MHz.
Und dann ist da noch die Frage, welche Taktfrequenzen tatsächlich 
verwendet werden...

von Markus (Gast)


Lesenswert?

Mich interessiert ja nur ob die STM32F0 "value line" mit "schnarch 
langsam" gleichzusetzen ist.

von avr (Gast)


Lesenswert?

M. K. schrieb:
> Und was steht wirklich drin? Ich erinnere mich auch gern mal an falsche
> Sachen bzw. verwechsel gern was. Schau doch erstmal ins Datenblatt ;)

Hättest du auch machen können, statt das falsche zu behaupten. Die haben 
wirklich einen Single cycle multiplier.

Der befehlssatz des m0 ist im Vergleich zum m3 stark eingeschränkt. Der 
m0 kann zum Beispiel nur eine 32x32->32bit Multiplikation. Auch der 
barrelshifter kann nicht so flexibel eingesetzt werden wie beim m3.

von Stefan F. (Gast)


Lesenswert?

> Wodurch ist der M3 so viel schneller?

Kannst du hier nachlesen: 
https://www.eecs.umich.edu/courses/eecs373/labs/refs/M3%20Guide.pdf

von Philipp K. (philipp_k59)


Lesenswert?

Markus schrieb:
> Mich interessiert ja nur ob die STM32F0 "value line" mit "schnarch
> langsam" gleichzusetzen ist.

Blöde Frage, da fehlt der Anwendungszweck z.B. ob nur ein 8Mhz Signal 
geloggt werden muss oder nen MP3 codiert wird.

Gegen einen AVR mit 8Mhz auf 3.3V ist es eine Rakete.. Gegen Anwendungen 
in denen man schon bei nem F4 zugreifen sollte viel zu klein.

EDIT: ich bin von den Atmegas zum 103 und dann zum F030..

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Markus schrieb:
> Mich interessiert ja nur ob die STM32F0 "value line" mit "schnarch
> langsam" gleichzusetzen ist.

Die Leistung eines µC in einem Benchmark ist für den Praxiseinsatz kein 
relevantes Kriterium. Da geht es nur darum, ob er schnell genug ist oder 
nicht. Und für viele Anwendungen ist ein STM32F0 schnell genug.

von Stefan F. (Gast)


Lesenswert?

In sehr vielen Anwendungen ist die Geschwindigkeit fast völlig egal.

Nur mal so als Beispiel: Bei so einer Uhr 
https://www.casio-europe.com/resource/images/watch/zoom/A168WA-1YES.jpg 
kann der µC kaum zu langsam sein. Da ist die Stromaufnahme und die 
Versorgungsspannung viel wichtiger. Und die Genauigkeit der Taktfrequenz 
ist viel spannender.

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.