Unterschied zwischen Instruktion, Operationen und Mikrobetrieb (UOP)

4573
shailenTJ

Ich versuche, die komplizierten Begriffe zu verstehen, die sich auf die Leistung von Prozessoren beziehen.

Die Computerleistung wird in gemessen FLOPS, was für FLOPs pro Sekunde kurz ist . FLOPsselbst steht für Floating-Point-Operationen .

Warum werden Fließkommaoperationen für die Leistung eines Computers berücksichtigt? Was ist mit Ganzzahloperationen? Gibt es eine Onlinequelle (offizielle Zitierung), die diesen Trend erklären könnte? Google hat mir bei meiner Suche nichts gegeben.

Was bedeutet nun genau der Betrieb in FLOP? Bedeutet dies, dass eine mathematische Operation wie MUL, ADD, DIVetc?

Was wäre in diesem Fall eine Anweisung ? Wenn eine Anweisung so etwas wie ist ADDPD, ADDSDetc, wie ich hier (siehe kann http://docs.oracle.com/cd/E26502_01/html/E28388/epmpv.html ), dann eine Anweisung kann zu vielen internen Operationen führen. Wäre die Mikro-Operationen oder Uops ?

Ich fand die Erklärung für Mikrooperationen auf Wikipedia nicht hilfreich. Wer dies klar erklärt, wird wahrscheinlich auch den Wikipedia-Artikel verbessern müssen :)

Gemäß dem Hennessy / Patterson-Buch zur Computerarchitektur (5. Auflage, Seite 233) kann der ARM Cortex-A8 (RISC) zwei Anweisungen pro Uhr ausführen. Bedeutet das, dass der Prozessor in einem Zyklus beispielsweise eine ADDPDund eine ADDSD(Summe = 2 Anweisungen) ausführen kann ?

Diese Quelle ( http://de.community.dell.com/techcenter/high-performance-computing/w/wiki/2329 ) besagt Folgendes:

Die meisten Mikroprozessoren können heute vier (4) FLOPs pro Taktzyklus ausführen, d. H. 4 FLOPs pro Hz.

Ich glaube der Autor ist falsch. Er implizierte wahrscheinlich 4 Anweisungen pro Zyklus und beschränkte sich auf CISC-basierte Prozessoren (zum Beispiel Intel). Das liegt daran, dass einige Anweisungen wie FMA unter Haswell die Leistung steigern können, wodurch der Prozessor mehr Vorgänge pro Zyklus verarbeiten kann. Mit anderen Worten, eine FMA Anweisung übersetzt in ein paar Operationen . Habe ich recht?

IPC steht für Instruction per Cycle. Welche Anweisungen werden hier genannt? Die Anweisungen, die vom Prozessor zurückgezogen wurden? Mit einem Hardwarezähler kann ich die Anzahl der CPU-Zyklen und die Anzahl der CPU-Zyklen zählen INST_RETIRED.ANY. Wäre das der richtige Weg, um den IPC zu berechnen?

Vielen Dank für alle Antworten und Kommentare. Hoffentlich hilft meine Frage vielen anderen verwirrten Seelen :)

2
Willkommen bei SuperUser. Können Sie sich bitte genauer auf Ihre Frage beziehen? Auch Sie haben hier mehr als eine Frage gestellt und daher ist es schwierig, dies zu beantworten. Siehe [die Hilfe] (http://superuser.com/help/how-to-ask) dieser Site. Uwe Plonus vor 10 Jahren 1
Verstehen Sie den Unterschied zwischen einer ADD-Operation, die eine Ganzzahl behandelt, und einer ADD-Operation, die einen Fließkommawert behandelt? Um eine Antwort auf diese Frage zu verstehen, müssen Sie den Unterschied verstehen. Ramhound vor 10 Jahren 0
@Ramhound, die ADDs wären unterschiedlich, da zwei verschiedene ALUs sie berechnen würden. Auf Sandy Bridge / Ivy Bridge zum Beispiel gibt es unter Port 0 zwei separate ALUs, die diese Berechnungen durchführen. Wenn wir jedoch über Leistung sprechen, sprechen wir über FLOPS. Ganzzahloperationen werden nicht berücksichtigt. Das ist also verwirrend. Ich denke, dass alle Unterfragen sich auf die größere Frage beziehen, die sich auf den Unterschied zwischen den drei Begriffen bezieht. Ich werde die ganze Frage neu formulieren, so dass ich bessere Antworten und weniger Downvotes erhalten kann :) shailenTJ vor 10 Jahren 0
@shailenTJ - Ich bin verwirrt von der Frage, um ehrlich zu sein. Sie unterschätzen den Unterschied, wie eine Ganzzahl und ein Fließkomma behandelt werden. Ramhound vor 10 Jahren 0

1 Antwort auf die Frage

1
sawdust

Warum werden Fließkommaoperationen für die Leistung eines Computers berücksichtigt? Was ist mit Ganzzahloperationen?

Floating-Point-Operationen sind nur eine von mehreren Metriken, die im Laufe der Jahre zum Benchmarking der Computerleistung verwendet wurden. Das Messen von FP-Vorgängen gilt als für einige reale Anwendungen (z. B. Wettersimulationen) geeigneter als für Ganzzahlvorgänge. Wenn Sie Computer für eine Datenbankanwendung auswerten, ignorieren Sie wahrscheinlich die FLOPS-Spezifikationen und konzentrieren sich auf IPS (Anweisungen pro Sekunde) und E / A-Leistung.

Was bedeutet nun genau der Betrieb in FLOP? Bedeutet das eine mathematische Operation wie MUL, ADD, DIV usw.?

Die "Operation" ist die Ausführung der "Anweisung", bei der es sich um einen Maschinencode (dh einen Binärwert) oder eine Berechnung durch die FPU, Floating Point Unit, handelt. Die (ältere) FPU wird normalerweise asynchron mit der CPU und der ALU ausgeführt, um die Programmausführung nicht zu behindern, die nicht vom FP-Ergebnis abhängt.

Beachten Sie, dass ein Computer (ca. 1980), der keine FPU hatte, mit einem Peripheriegerät der FPU aufgerüstet werden konnte. Die FP-Bibliothek von Softwareroutinen, die grundlegende FP-Operationen (Addieren, Subtrahieren, Multiplizieren, Dividieren, Quadratwurzel usw.) implementierten, würde durch eine Bibliothek ersetzt, die E / A-Anweisungen für den Zugriff auf die FPU-Peripherie aufrief. Ein Interrupt von der FPU würde die CPU darüber informieren, dass die FP-Operation abgeschlossen war.

Frühe PCs waren ähnlich aufgebaut. Der ursprüngliche IBM-PC verwendete den Intel 8088-Mikroprozessor, der keine HW-FP-Fähigkeit hatte. Es könnte jedoch ein mathematischer 8087-Coprozessor installiert werden, so dass die FP-Anweisungen durch Hardware ausgeführt werden können, anstatt zu Software-Routinen umgeleitet zu werden. Schließlich integrierte Intel den mathematischen Co-Prozessor für das i486 in das CPU-Paket

Was wäre in diesem Fall eine Anweisung?

"Anweisung" sollte keine mehrdeutige Entität sein. Es ist ein Maschinencode oder ein Mnemomic des Prozessors.

dann kann eine Anweisung zu vielen internen Operationen führen. Wäre das Mikrooperationen oder Uops?

Anscheinend beziehen Sie sich auf Mikroprogrammierung.
(Früher gab es eine Computerfirma, die die Mikroprogrammierung um eine Iteration reduzierte: auf die Nano- Programmierebene. Die Produkte waren für die CPU-Emulation bestimmt.) Die
Mikroprogrammierung ist für die Anwendungsprogrammleistung nicht wirklich relevant. Das heißt, Sie können die Mikroprogrammierung normalerweise nicht wie auf einem Nanoprogrammprozessor umschreiben / verbessern.

Bedeutet das, dass der Prozessor in einem Zyklus beispielsweise eine ADDPD und eine ADDSD (total = 2 Anweisungen) ausführen kann?

Art von. Die Ausführung von mehr als einem Befehl pro Taktzyklus erfordert eine Pipeline von "Ausführungseinheiten". Denken Sie an eine Fertigungsstraße für Fahrzeuge. An jeder Station wird eine bestimmte Aufgabe ausgeführt. Am Ende der Montagelinie (Pipeline) wird jeweils nur ein Fahrzeug (Anweisung) fertiggestellt. Die Parallelität ist gestaffelt und nicht synchronisiert.

Welche Anweisungen werden hier genannt?

Jede Anweisung ist ein Maschinencode.

Mit anderen Worten: Ein FMA-Befehl übersetzt in ein paar Operationen. Habe ich recht?

Nein, eine Anweisung korreliert mit einer Operation.