"In Order" und "Out of Order"

Fahrradfahrer

Banned
Registriert
Mai 2020
Beiträge
50
Es gibt bei Prozessoren ein wichtiges Leistungsmerkmal, wie ich mal zu meinem Erstaunen herausfand. Leider wird bei Prozessor-Datenblättern dieses Merkmal oft nicht angegeben.

Prozessoren können eine "In-Order-Ausführung" oder eine "Out-of-Order"-Ausführung unterstützen. Letztere beschleunigt den Programmfluss meines Wissens nach deutlich.

Wie finde ich einwandfrei heraus, ob ein Prozessor in order oder out of order arbeitet?

Beispielhaft erwähnt seien folgende Prozessoren, über die ich das wissen möchte:
Intel Atom N270 (angeblich in order)
AMD A4-9120e (keine Ahnung, was von beidem)
Intel i5-3320M (vermutlich out of order)

Für diejenigen, die das noch nie gehört haben:
https://de.wikipedia.org/wiki/Out-of-order_execution
 
Im Wikipedia Link stehts unten etwas verallgemeinert drin. Ansonsten musst du die Architekturen etwas genauer recherchieren.
Der Atom sollte in-order sein. Er ist nicht vom Spectre/Meltdown betroffen.
 
  • Gefällt mir
Reaktionen: Fahrradfahrer
In-Order-Architekturen sind was für die ganz kleinen, energiesparenden Dinger. Selbst die neuen Atoms und die davon abgeleiteten Celerons/Pentium Silver sind Out-of-Order-Architekturen.
Lies die c't, wenn Du was dazulernen willst. Gibt's für Schüler & Studenten im Abonnement günstiger.
 
  • Gefällt mir
Reaktionen: Fahrradfahrer
Fahrradfahrer schrieb:
Wie finde ich einwandfrei heraus, ob ein Prozessor in order oder out of order arbeitet?

Indem man ein Programm schreibt was dieses Überpüfen kann ... ansonsten heist ja es auch nicht das ein out of order könnende CPU kein in order abarbeiten kann.

Aber am Ende machst du dir einen zu großen Kopf um die Leistung bei einfach schwachen CPU´s ...
 
xxMuahdibxx schrieb:
Indem man ein Programm schreibt was dieses Überpüfen kann ...
Nicht böse gemeint, aber ich ziehe in Zweifel, dass sich das algorithmisch klären lässt - IO- und OOO-Architekturen sind eben darauf designt, dass immer das gleiche Ergebnis herauskommt. Ausnahme wäre natürlich, wenn der CPU-Hersteller ein Flag dafür an geeigneter Stelle setzen würde (aber davon ist mir bis dato - über zwei Jahrzehnte nachdem OOO bei x86 angekommen ist - auch nichts bekannt).
Auch Tools wie CPUID spucken mW. nichts dazu aus - und wenn sie es würden, dann vermutlich nur aus einer Datenbank.
 
  • Gefällt mir
Reaktionen: Fahrradfahrer
Kein aktueller Prozessor (innerhalb des Consumerbereichs PC/Mobile) ist eine In-Order Architektur. Da musst du nichts herausfinden in der Hoffnung auf mehr Performance, die führen die Befehle schon lange so aus wie es ihnen gerade passt. Und das sogar spekulativ. Der erste Atom war ein später Sonderling und wurde in seinen Folgearchitekturen ebenfalls auf Out-Of-Order umgestellt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Stuffz und Fahrradfahrer
ghecko schrieb:
Kein aktueller Prozessor (innerhalb des Consumerbereichs PC/Mobile) ist eine In-Order Architektur.

Wäre auf jeden Fall schön, wenn das stimmt. Andere Meinungen? Falls nicht, halte ich das einfach mal für wahr.
 
Trifft zu. Die Bay-Trail-Atoms führten OOO auch für die kleinsten Intel-Consumer-CPUs ein (etwa 2013), bei AMD ist seit dem K5 auch kein IO mehr zu haben. Das kann man übrigens auch Alles in der Wikipedia nachschlagen.
 
  • Gefällt mir
Reaktionen: Fahrradfahrer
Phrasendreher schrieb:
Das kann man übrigens auch Alles in der Wikipedia nachschlagen.
Ja weißt du, das ist manchmal so eine Sache. Wenn du gar nicht damit rechnest, dass da dazu was stehst, guckst du auch gar nicht erst nach. Aber du hast natürlich trotzdem recht - etwas mehr Eigenrecherche müssen manche und ich mir schon antun.
 
Intel hat seit dem P6 Pentium Pro mit Ausnahme der ersten Atom Architektur (Bonnell) keine IO-Architektur mehr für den Consumermarkt entwickelt. Bei AMD war der K5 der Umbruch, wie @Phrasendreher schon bemerkt hat. Die Architekuren stammen aus dem frühen 90ern des letzten Jahrtausends.
 
  • Gefällt mir
Reaktionen: Fahrradfahrer
Fahrradfahrer schrieb:
Wenn du gar nicht damit rechnest, dass da dazu was stehst,

guckst du gar nicht auf der Seite weiter die du selber verlinkt hat und übersiehst den letzten Eintrag dabei
Fast alle modernen x86-Prozessoren ab dem Intel Pentium Pro bzw. AMD K5 können Befehle out-of-order ausführen. Bekannte Ausnahmen sind die IDT-WinChip-, VIA-C3- und -C7-Serien, die von Centaur Technology entwickelt wurden, und die Intel-Atom-Serie bis einschließlich Cedar Trail.

@phasendreher so wie du es erklärst scheint es mir auch logisch zu sein ... hab selber da auch nicht die Erfahrung drinn. Das einzige was man messen könnte wäre halt die Zeit die man für ein Ergebnis braucht.
 
Zuletzt bearbeitet:
Zurück
Oben