STM32 F4 vs Intel Pentium 1 @ 166MHz

Gast #3057328
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?
Gast #3057342
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 :-)
#3057504
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.
#3060760
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.
#3060775
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.
Gast #3061110
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.
#3061456
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.
#3061964
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.
#3062228
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?
#3062387
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!
Gast #3064216
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 ...
#3064241
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.
#3064248
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.
#3064772
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.
#3064841
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...
#3064908
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.
#3064972
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren