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?
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.
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 :-)
Der STM32F4 braucht keinen Kühlkörper. Der Pentium schon, also muss der viel mehr Leistung verbraten.
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.
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.
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.
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.
>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.
A. K. schrieb: > Keineswegs, der hatte die erste und voll gepipelinete FPU der x86er. Man streiche bitte das "und".
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.
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.
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
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.?
Laut coremark ist der P1 100 ziemlich ident mit einem STM32F4... 73
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.
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!
> 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.
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.
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.
@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
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?
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!
@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 ...
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.
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.
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.
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.
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?
"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 :)
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.
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...
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?
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.
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.
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.
Mögliches Missverständnis: Ich beziehe mich jetzt auf die Integer-Pipeline. Die FPU ist bei 486 und Pentium völlig verschieden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.