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.