Forum: Mikrocontroller und Digitale Elektronik STM32 F4 vs Intel Pentium 1 @ 166MHz


von Fragender (Gast)


Lesenswert?

In wie fern lässt sich die Rechenleistung eines STM32F4 mit der eines 
Pentium 1 @ 166MHz vergleichen. Von der Taktfrequenz ist der Cortex 
sogar schneller, sind beides 32Bit CPUs.

Beim Pentium handelt es sich zwar um eine nackte CPU und beim F4 um 
einen Controller, aber die Leistungen kann man doch sicherlich 
vergleichen oder?

von Ersi (cell85)


Lesenswert?

Man müsste einen synthetischen Benchmark laufen lassen und die Leistung 
pro Takt bzw. Abarbeitungsgeschwindigkeit des Benchmarks zu errechnen.

Kommt aber auch auf die Aufgabe an, welche zum Vergleich dienen soll.
Ich würde den alten Pentium auf gar keinen Fall unterschätzen.

von Dennis (Gast)


Lesenswert?

Fragender schrieb:
> In wie fern lässt sich die Rechenleistung eines STM32F4 mit der eines
> Pentium 1 @ 166MHz vergleichen.

Solche Fragen stellen meistens Informatiker, die noch nie einen uC in 
der Hand gehabt haben...

Da sie für völlig unterschiedliche Aufgaben geschaffen wurden: GARNICHT.

Fragender schrieb:
> Beim Pentium handelt es sich zwar um eine nackte CPU und beim F4 um
> einen Controller, aber die Leistungen kann man doch sicherlich
> vergleichen oder?

Klar! Beide können z.B. binär wahnsinnig schnell Zahlen addieren :-)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Der STM32F4 braucht keinen Kühlkörper. Der Pentium schon, also muss der 
viel mehr Leistung verbraten.

von (prx) A. K. (prx)


Lesenswert?

Dennis schrieb:
> Da sie für völlig unterschiedliche Aufgaben geschaffen wurden: GARNICHT.

Da direkt nach der Rechenleistung gefragt wurde, lässt sich das schon 
beantworten. Schwierig wird es, wenn man den Pentium danach fragt, wie 
schnell sein DMA funktioniert oder wie schnell er Pins toggeln kann.

von (prx) A. K. (prx)


Lesenswert?

Fragender schrieb:
> In wie fern lässt sich die Rechenleistung eines STM32F4 mit der eines
> Pentium 1 @ 166MHz vergleichen.

Bei 64-Bit Fliesskommarechnung wird der Pentium 166 den STM32F4 leicht 
und locker an die Wand nageln.

von Christian B. (casandro)


Lesenswert?

So weit wie ich weiß war der Pentium 1 noch sehr langsam wenn es um 
Fließkomma ging. Das hat Intel erst später geschafft. Somit könnte ein 
STM32 F4 durchaus schneller sein. Ein Hinweis wären die Datenblätter.

von (prx) A. K. (prx)


Lesenswert?

Christian Berger schrieb:
> So weit wie ich weiß war der Pentium 1 noch sehr langsam wenn es um
> Fließkomma ging.

Keineswegs, der hatte die erste und voll gepipelinete FPU der x86er. Nur 
musste man mangels OOO-Core und dank der stackorientierten FPU auf 
ziemlich üble Art mit FXCH tricksen.

Aber der kleine Hinterhalt meiner Antwort liegt woanders: Der Cortex-M4 
hat nur eine single precision FPU.

von Ersi (cell85)


Lesenswert?

>Da sie für völlig unterschiedliche Aufgaben geschaffen wurden: GARNICHT.

Doch wohl! Warum ist der eine wohl ein RISC und der andere nicht?

Die Aufgabe des Pentiums und des F4 war das Rechnen ... klar ! Aber ich 
spreche hier von der Zielapplikation.

von (prx) A. K. (prx)


Lesenswert?

A. K. schrieb:
> Keineswegs, der hatte die erste und voll gepipelinete FPU der x86er.

Man streiche bitte das "und".

von Christian B. (casandro)


Lesenswert?

Naja, die x86 Archtektur wird bei single precision bis auf die 
Speicherzugriffe nicht wirklich schneller. Intern rechnet das teil ja eh 
mit voller Genauigkeit.
Ich müsste mal nachschauen, ich hab irgendwo alte IXen wo es immer Tests 
zwischen unterschiedlichen Prozessoren unterschiedlicher Architekturen 
gab. Und so weit wie ich mich erinnern kann war lange Zeit (bis so 2002 
oder so) die Fließkommaleistung der x86 Prozessoren immer sehr klein 
gegenüber allen anderen.

von (prx) A. K. (prx)


Lesenswert?

Christian Berger schrieb:
> gab. Und so weit wie ich mich erinnern kann war lange Zeit (bis so 2002
> oder so) die Fließkommaleistung der x86 Prozessoren immer sehr klein
> gegenüber allen anderen.

Sie blieb auch beim Pentium noch kleiner als bei RISC Boliden wie den 
IBM Power-Prozessoren. Was auch dem Umstand geschuldet ist, dass eine 
Stack-Architektur ohne OOO nur mit Krämpfen zu guter Performance zu 
bewegen ist. Der Pentium hatte als erste x86-Implementierung immerhin 
FPU-Pipelining zu bieten. Die OOO-Architektur des PentiumPro sortierte 
dann die Verhältnisse neu und die spätere Abkehr von der x87-FPU mittels 
SSE schaffte saubere neue Grundlagen.

Man sollte freilich nicht aus den Augen verlieren, dass die Konkurrenz 
in Form ebendieser IBM Boliden damals wie heute mit sehr dicken Kanonen 
schiesst, mit einem für normale Anwendungen unverhältnismässigen hohen 
Aufwand an Hardware. IBM hatte in den auf Fliesskommaleistung 
optimierten Maschinen durchgängig bis in den Speicher hin mit 256 Bit 
Breite operiert, gegenüber (damals) 64 Bits bei PC Prozessoren. Man 
kriegt was man zahlt.

Mit den hier betrachteten CM4 hat diese Relation freilich sehr wenig zu 
tun.

von (prx) A. K. (prx)


Lesenswert?

PS: Details zum Aufbau der diversen x86-Architekturen:
http://www.agner.org/optimize/microarchitecture.pdf
Instruction-Set Tables:
http://www.agner.org/optimize/instruction_tables.pdf

von Pete K. (pete77)


Lesenswert?

Fragender schrieb:
> In wie fern lässt sich die Rechenleistung eines STM32F4 mit der eines
> Pentium 1 @ 166MHz vergleichen.

Vielleicht mit entsprechenden Tests :-)

Hat nicht jemand noch einen P1 und kann darauf z.B. eine 
Primzahlberechnung starten und die Ergebnisse hier posten?
Oder Dhrystone, Sortieralgorithmus, Ackermannfunktion, etc.?

von Hans (Gast)


Lesenswert?

Laut coremark ist der P1 100 ziemlich ident mit einem STM32F4...

73

von Kein Name (Gast)


Lesenswert?

Nach dieser Tabelle hat ein 166er Pentium 189 Dhrystone MIPS.
http://www.roylongbottom.org.uk/dhrystone%20results.htm

Nach Angaben von ST hat ein 120er STM32 150 Dhrystone MIPS.

Allerdings... je nach Compileroptionen schwanken die Pentium Werte 
zwischen 43.9 und 189. Im Nettz finden sich auch Benchmarks, die 
behaupten in der Realität hätte ein STM32 nur 30 DMIPS.

von itekt (Gast)


Lesenswert?

A. K. schrieb:
> PS: Details zum Aufbau der diversen x86-Architekturen:
> http://www.agner.org/optimize/microarchitecture.pdf
> Instruction-Set Tables:
> http://www.agner.org/optimize/instruction_tables.pdf

Das ist mal eine nuetzliche Info.

Besten Dank!

von Lästermaul (Gast)


Lesenswert?

> Das ist mal eine nuetzliche Info.

Na ja... wenn man z.B. wissen will, ob ein Videoencoder aus Pentium 
Zeiten inzwischen auf einem MC läuft, hilft diese Tabelle nicht wirklich 
weiter.

von (prx) A. K. (prx)


Lesenswert?

Und Kaffee kochen kann sie auch nicht. Aber das ist die beste Übersicht 
über die Performancewerte einzelner Befehle von allen x86 ab Pentium. In 
Verbindung mit der Beschreibung kann man dem beispielsweise entnehmen, 
dass in jedem Takt abwechselnd ein FADD und ein FMUL voll gepipelined 
durchgeschoben werden kann.

Die Performance konkreter Probleme lässt sich daraus nicht ableiten. 
Aber das gilt universell - kein irgendwie gearteter Vergleich mit Hilfe 
von Programm A sagt genau voraus, wie sich ein anderes Programm B 
verhalten wird. Die Performance eines Videoencoders lässt sich auch aus 
Coremarks oder Dhrystones nicht ableiten. Sondern wirklich nur aus 
Messungen mit dem Encoder.

von Tim  . (cpldcpu)


Lesenswert?

Also so wie ich die Dokumentation des Cortex M4 verstehe, ist die CPU 
nicht superscalar. Die meisten Befehle benötigen einen Taktzyklus, 
Ladebefehle 2, wenn das Ergebnis im nächsten Befehl verwendet wird. Die 
FPU Multiplikation benötigt drei Zyklen und ist nicht gepipelined.

Der Pentium ist superscalar und kann unter günstigen Umständen zwei 
Befehle pro Taktyklus ausführen. Die FPU Multiplikation ist voll 
gepelined, so dass sie unter günstigen Umständen nur einen Taktzyklus 
benötigt.

Im theoretischen Bestfall ist der Pentium also doppelt so schnell, bei 
FPU Multiplkationen drei mal so schnell. In der praktischen Umsetzung 
sieht das allerdings deutlich anders aus, so dass er nur leicht 
schneller als ein Cortex M4 sein wird.

Die FPU des Pentium ist übrigens nicht zu unterschätzen. Das Pipelining 
hat damals Spiele wie Quake überhaupt erst umsetzbar gemacht. Der 
vergleichbare Motora 68060 hatte keine gepipelinete CPU, so dass Apple 
und Amiga dagegen ziemlich armselig aussahen. Der Unterschied trat erst 
bei handoptimiertem code zutage.

von Martin Beuttenmüller (Gast)


Lesenswert?

@cpldcpu

<joke>
Bitte keine Kritik am Amiga (rip), sonst bricht hier ein
"Religionskrieg" aus !!!
</joke>

Kann man RISC und CISC wirklich vergleichen, oder gilt
das Ding mit den Äpfeln und Birnen ?

Martin

von (prx) A. K. (prx)


Lesenswert?

Martin Beuttenmüller schrieb:
> Kann man RISC und CISC wirklich vergleichen, oder gilt
> das Ding mit den Äpfeln und Birnen ?

Warum sollte man Äpfel und Birnen nicht vergleichen können? Aus beiden 
kann man einen prima Schnaps machen.

Aber hier stand die Frage im Raum, wie sich die Performance eines 
STM32F4 verglichen mit einem Pentium 1 verhält, weil sich die 
Performance von historischen PC-Prozessoren nun einmal als vielen 
bekannte Messlatte eignet. Diese Frage hat mit RISC/CISC nichts zu tun, 
es in die Richtung solcher Religionskriege zu schieben hast du in diesem 
Thread als Erster getan. Bist also in Wahrheit Du es, der einen 
Religionskrieg daraus machen will?

von Maik W. (werner01)


Lesenswert?

Dennis schrieb:

>
> Solche Fragen stellen meistens Informatiker, die noch nie einen uC in
> der Hand gehabt haben...
 ????????

> Da sie für völlig unterschiedliche Aufgaben geschaffen wurden: GARNICHT.

Hey sorry Dennis aber für welche Aufgaben sind Sie denn geschaffen? 
Natürlich kann man die Rechenleistung vergleichen! Warum auch nicht? Und 
für was da jetzt ein Microprozessor gedacht ist, entscheidet immer die 
zu bewältigende Aufgabe, denn dann sollte man die richtige Wahl treffen!

von Martin Beuttenmüller (Gast)


Lesenswert?

@prx

Der "Religionskrieg" war (eindeutig) als Ulk gekennzeichnet und bezog
sich nur auf den Amiga  ;-} .

---

Die Frage bezüglich RISC/CISC-Vergleichbarkeit war durchaus ernst
gemeint: ein 600PS Rennbolide läßt sich (nicht wirklich) mit
einem 600PS Turbo-Diesel vergleichen, auch wenn die Leistung
ähnlich groß ist.

Den (bekannten) Pentium als "Messlatte" verwenden ist sicher machbar,
doch der Verwendungszweck ist sicherlich auch ein wichtiges
Kriterium (wie oben schon von Denis angemerkt).

Liebe Grüße
Martin
-----------------------------
Ich bin kein Spinner:
Ich bin nur anders verdrahtet worden ...

von (prx) A. K. (prx)


Lesenswert?

Martin Beuttenmüller schrieb:
> Die Frage bezüglich RISC/CISC-Vergleichbarkeit war durchaus ernst
> gemeint: ein 600PS Rennbolide läßt sich (nicht wirklich) mit
> einem 600PS Turbo-Diesel vergleichen, auch wenn die Leistung
> ähnlich groß ist.

Warum sollten sie sich nicht vergleichen lassen? Die diversen SPECmarks 
machen nichts anderes, als verschiedene Maschinen zu vergleichen, egal 
ob Intel, AMD, IBM oder Oracle/Sun drinsteckt. RISC und CISC (bzw. 
Diesel oder Benziner) ist zudem ein Detail, das an dieser Stelle 
herzlich uninteressant ist, denn das Ergebnis zählt, nicht der Weg zum 
Ergebnis. Da sind auch Benchmarks dabei, die tpm/$ angeben, womit also 
die Preis/Leistungs-Relation mit drin ist.

von Tim  . (cpldcpu)


Lesenswert?

Die RISC vs. CISC Debatte ist nicht so eindeutig wie bei Autos und hat 
mehr mit der Prozessorarchitektur als mit dem Befehlssatz zu tun. Der 
Pentium ist z.B. eher ein RISC Prozesser als ein 386, obwohl beide die 
gleiche ISA verwenden. Im Grunde handelt es sich bei den Bezeichnungen 
um Paradigmen die in den 80er Jahren relevant waren, als 
CPU-Architekturen noch durch die Transistordichte limitiert wurden, und 
jetzt kaum noch eindeutig zugeordnet werden können.

von (prx) A. K. (prx)


Lesenswert?

Eben. Letztlich ist es völlig egal, ob ein Prozessor intern als RISC, 
CISC, in RISC übersetzte CISC, Stackmaschine oder mit schwarzer Magie 
arbeitet. Den Anwender bzw. C-Programmierer interessieren die 
erreichbare Leistung und der dafür zu zahlende Preis.

von Lästermaul (Gast)


Lesenswert?

Zumindest in Adventurespielen funktioniert schwarze Magie besser als 
alle Arten von Maschinen. Wo bekomme ich einen Prozessor her, der mir 
schwarzer Magie arbeitet? Ich würde auch das Doppelte bezahlen.

von (prx) A. K. (prx)


Lesenswert?

Lästermaul schrieb:
> Ich würde auch das Doppelte bezahlen.

Du weisst schon, dass man sowas nicht in € sondern Seele bezahlt? Wie 
ist denn da grad der Umrechnungskurs?

von Tim  . (cpldcpu)


Lesenswert?

"Any sufficiently advanced technology is indistinguishable from magic." 
(A.C. Clarke)

Und jetzt erkläre mir mal, wie ein 22nm Mikroprozessor auf 
mikroskopischer Ebene funktioniert :)

von (prx) A. K. (prx)


Lesenswert?

Tim .  schrieb:
> Pentium ist z.B. eher ein RISC Prozesser als ein 386, obwohl beide die
> gleiche ISA verwenden.

Der Pentium hatte zwei klassische 486er CISC-Pipelines nebeneinander, 
plus gepipelineter in-order FPU. Damit stand er noch voll in der 
Tradition des 386. Erst der PentiumPro löste die Befehle kleinteilig in 
interne Micro-Ops auf und kann als Urvater aller seitherigen High-End 
Intel-Prozessoren ausser der Pentium-4/Netburst Abirrung betrachtet 
werden.

von Tim  . (cpldcpu)


Lesenswert?

A. K. schrieb:
> Tim .  schrieb:
>> Pentium ist z.B. eher ein RISC Prozesser als ein 386, obwohl beide die
>> gleiche ISA verwenden.
>
> Der Pentium hatte zwei klassische 486er CISC-Pipelines nebeneinander,
> plus gepipelineter in-order FPU. Damit stand er noch voll in der
> Tradition des 386.

Sorry, aber das ist so nicht ganz korrekt. Der 486 hat zwar viele 
Befehle in einem Taktzyklus ausgeführt, hatte aber noch keine klassische 
Pipeline. Die kam erst mit dem Pentium, neben Load/Store Architektur, 
Register Renaming und Superskalarität (Die allerdings eingeschränkt). 
Damit sind die meisten RISC features bereits umgesetzt gewesen. Einen 
ähnlichen Sprung kann man zwischen 68040 und 68060 beobachten.

Das ist auch hier schön zu sehen:

http://upload.wikimedia.org/wikipedia/commons/4/48/80486DX2_arch.png
http://upload.wikimedia.org/wikipedia/commons/1/1a/Intel_Pentium_arch.svg

Beim Pentium Pro kam dann out-of-order und eine klare Trennung zwischen 
uOP und x86-OP hinzu, was eine ganze Menge Zusatzaufwand erfordert hat 
(Instruction Retirement etc.). ooo ist allerdings keine Eigenschaft der 
Ur-Risc prozessoren gewesen. Daher ist in Frage zu stellen, ob x86 
dadurch wirkliche "risciger" wurde.

> Erst der PentiumPro löste die Befehle kleinteilig in
> interne Micro-Ops auf und kann als Urvater aller seitherigen High-End
> Intel-Prozessoren ausser der Pentium-4/Netburst Abirrung betrachtet
> werden.

Ja, Netburst hatte das Problem dass es mit dem Ende des klassischen 
Dennard-Scalings zusammenfiel (130 nm). Dadurch sind einige der 
Designprämissen hinfällig gewesen...

von Eumel (Gast)


Lesenswert?

Blabla, jetzt wird hier aber wieder das Fachwissen ausgepackt ;)

Wie wäre es denn wenn jemand der Beide Prozessoren zur Hand hat mal 
einfach ein paar kleine Vergleiche anstellt?

von (prx) A. K. (prx)


Lesenswert?

Tim .  schrieb:
> Der 486 hat zwar viele
> Befehle in einem Taktzyklus ausgeführt, hatte aber noch keine klassische
> Pipeline.

Doch. Load-Befehle und Register-Operationen hatten eine Ausführungszeit 
von 1 Takt, was bei dieser Taktfrequenz nur per Pipelining realisierbar 
war. Im Wesentlichen waren das die Stufen: 2 Takte Decode, 
Adresserzeugung, Ausführung. Ins Stocken kam diese Pipeline bei 
Load-Execute Befehlen, da die Execute Stage sowohl fürs Laden wie für 
die Operation zuständig war. Die beim Pentium bekannteren 
AGU-Interlocks, also ein Stocken der Pipeline bei direkt davor 
berechneten/geladenen Adressen, hatte der 486 auch schon.

http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=63682&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D63682

Der Pentium 1 hat im Wesentlichen die gleiche Pipeline wie der 486, nur 
eben 2 davon. Pipeling-Stalls bei Load-Execute inklusive. Diese Stalls 
vermied Cyrix in den M1/M2 mit der an dieser Stelle ähnlichen 
Architektur, aber getrennten Load und Execute Stages.

> Die kam erst mit dem Pentium, neben Load/Store Architektur,
> Register Renaming und Superskalarität

Der Pentium 1 hatte kein echtes Renaming, nur das explizit per FXCH 
programmierte Renaming der FPU.

Der Pentium 1 hatte auch keine Load/Store Architektur. Das hat kein x86, 
da sich dieser Begriff auf die ISA bezieht.

von (prx) A. K. (prx)


Lesenswert?

Eumel schrieb:
> Wie wäre es denn wenn jemand der Beide Prozessoren zur Hand hat mal
> einfach ein paar kleine Vergleiche anstellt?

Im Moment geht es um interne Implementierung, nicht um 
Performance-Werte.

von (prx) A. K. (prx)


Lesenswert?

Tim .  schrieb:
> Das ist auch hier schön zu sehen:

Zum 486 sieht man da garnichts, weil dessen Blockbild nicht die Pipeline 
wiederspiegelt. Auch beim Bild zum Pentium ist das nicht offensichtlich.

von (prx) A. K. (prx)


Lesenswert?

Mögliches Missverständnis: Ich beziehe mich jetzt auf die 
Integer-Pipeline. Die FPU ist bei 486 und Pentium völlig verschieden.

von (prx) A. K. (prx)


Lesenswert?

Aus dem verlinkten IEEE Artikel zum 486, von Intel selbst:
- F (Fetch)
- D1 (Decode)
- D2 (inkl. Adressberechnung)
- EX (Execute/Load/Store)
- WB (Writeback)
Den Artikel findet man, wenn man nach "The i486 CPU: executing 
instructions in One Clock Cycle" googelt.

Pentium P5 Pipeline:
- F (Fetch)
- D1 (Decode)
- D2 (inkl. Adressberechnung)
- EX (Execute/Load/Store)
- WB (Writeback)
http://www.csse.monash.edu.au/~davida/teaching/cse3304/Web/Chapter5/sld024.htm

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.