Abstraktion und Rechenleistung

Sieh dir an, wie ein Rechnersystem in Schichten aufgebaut ist, von Anwendungen und Betriebssystem über den Befehlssatz bis hinunter zu Logikgattern und Transistoren, und wie aus einer Codezeile Maschinenbefehle werden. Lerne anschließend, Rechenleistung richtig zu messen: Ausführungszeit und Durchsatz, CPU-Zeit, Taktfrequenz und Taktzyklen pro Befehl, zusammengefasst in der CPU-Leistungsgleichung. Schätze mit dem amdahlschen Gesetz ab, was eine Verbesserung oder zusätzliche Prozessorkerne tatsächlich bringen können, und erfahre, warum Grenzen der Leistungsaufnahme das Rennen um höhere Taktfrequenzen beendeten und Prozessoren mehrere Kerne erhielten.

MittelEinheit 1 von 6 in Kurs: Rechnerarchitektur – Prozessoren, Speicher und RISC-V

Was du lernst

  1. Erkläre, wie Abstraktionsschichten eine Anwendung mit den Transistoren verbinden, die sie ausführen, verfolge eine Anweisung vom Hochsprachencode bis zu den Maschinenbefehlen und erkenne die Befehlssatzarchitektur als Vertrag zwischen Software und Hardware.
    • Verfolge die Abstraktionsschichten von Anwendungen bis zu Transistoren
      Benenne die Schichten eines Rechnersystems, gib an, was jede bereitstellt und verbirgt, und erkläre, warum Abstraktion den Entwurf komplexer Systeme ermöglicht.
    • Verfolge ein Programm vom Hochsprachencode bis zu den Maschinenbefehlen
      Beschreibe, wie Compiler, Assembler, Linker und Lader aus einem Hochsprachenprogramm binäre Maschinenbefehle machen, und verfolge eine Anweisung bis zu ihrem Bitmuster.
    • Erkläre die Befehlssatzarchitektur als Hardware-Software-Schnittstelle
      Unterscheide ISA, Binärschnittstelle und Implementierung und erkläre, warum eine ISA viele Implementierungen mit unterschiedlicher Rechenleistung haben kann.
  2. Definiere Rechenleistung anhand von Ausführungszeit und Durchsatz, vergleiche zwei Rechner korrekt und miss die für ein Programm wichtigen Zeiten.
    • Vergleiche Rechner anhand von Antwortzeit und Durchsatz
      Definiere Antwortzeit und Durchsatz, drücke Rechenleistung als Kehrwert der Ausführungszeit aus und gib korrekt an, um welchen Faktor ein Rechner schneller als ein anderer ist.
    • Miss Gesamtlaufzeit, CPU-Zeit und Taktzyklen
      Unterscheide Gesamtlaufzeit und CPU-Zeit, interpretiere Zeitmessungen und rechne mit den richtigen Einheiten zwischen Taktperiode und Taktfrequenz um.
  3. Stelle den Zusammenhang zwischen CPU-Zeit, Befehlsanzahl, Taktzyklen pro Befehl und Taktfrequenz her, berechne jede dieser Größen aus den anderen und beurteile, welche Entwurfsentscheidungen und Aussagen zur Rechenleistung die Ausführungszeit tatsächlich beeinflussen.
    • Stelle den Zusammenhang zwischen CPU-Zeit, Taktzyklen und Taktfrequenz her
      Berechne die CPU-Zeit aus Taktzyklen und Taktfrequenz und löse Entwurfsaufgaben, bei denen ein schnellerer Takt zusätzliche Zyklen kostet.
    • Berechne den CPI-Wert aus einem Befehlsmix
      Definiere die Taktzyklen pro Befehl, berechne den durchschnittlichen CPI-Wert als gewichtetes arithmetisches Mittel über Befehlsklassen und vergleiche damit Befehlsfolgen.
    • Wende die klassische CPU-Leistungsgleichung an
      Berechne und vergleiche Ausführungszeiten mit CPU-Zeit = Befehlsanzahl × CPI × Taktperiode und bestimme, welche Faktoren durch Algorithmus, Sprache, Compiler, ISA, Organisation und Technologie beeinflusst werden.
    • Beurteile Aussagen zur Rechenleistung und zusammengefasste Benchmark-Ergebnisse
      Erkläre, warum MIPS und Taktfrequenz täuschen, wie Benchmark-Suites wie SPEC CPU Ergebnisse als Verhältniszahlen angeben und warum das geometrische Mittel für ihre Zusammenfassung verwendet wird.
  4. Berechne den Gesamt-Speedup, wenn nur ein Teil eines Programms schneller wird, bestimme die Schranke dieses Speedups und wende dieselbe Überlegung auf Programme an, die auf vielen Prozessorkernen laufen.
    • Berechne den Gesamt-Speedup durch eine Verbesserung
      Wende das amdahlsche Gesetz auf eine teilweise Verbesserung an, bestimme die für einen angestrebten Speedup nötige Verbesserung und erkenne, wann ein Ziel unmöglich ist.
    • Untersuche mit dem amdahlschen Gesetz den Speedup von Mehrkernprozessoren
      Berechne den Speedup und die Effizienz eines teilweise parallelen Programms auf vielen Kernen, erkläre, warum reale Speedups niedriger ausfallen, und stelle Probleme mit fester und wachsender Größe gegenüber.
  5. Berechne, wie Spannung, Frequenz und Kapazität die Leistungsaufnahme und den Energieverbrauch eines Chips bestimmen, erkläre, warum die steigende Leistungsaufnahme die Ära immer schnellerer Einzelkerne beendete, und erkläre, warum Prozessoren mehrere Kerne erhielten und welche Anforderungen sich daraus an die Software ergeben.
    • Berechne die dynamische Leistungsaufnahme und den dynamischen Energieverbrauch von CMOS-Chips
      Nutze die Zusammenhänge zwischen Kapazität, Spannung, Frequenz, Leistungsaufnahme und Energie, um die Wirkung von Entwurfsänderungen abzuschätzen, und unterscheide dynamische und statische Leistungsaufnahme.
    • Erkläre die Power Wall und das Ende der Dennard-Skalierung
      Beschreibe, wie kleinere Transistoren einst höhere Taktfrequenzen bei konstanter Leistungsdichte ermöglichten und warum Leckströme und die Spannungsgrenze den Anstieg der Taktfrequenzen nach Mitte der 2000er-Jahre stoppten.
    • Erkläre, warum Prozessoren mehrere Kerne erhielten und welche Anforderungen sich daraus an die Software ergeben
      Zeige anhand der Leistungsgleichung, warum mehrere langsamere Kerne einen schnellen Kern übertreffen können, und erkläre, warum die Beschleunigung durch Mehrkernprozessoren von paralleler Software abhängt.

Abstraktion und Rechenleistung einfach erklärt

5 Kapitel

1

Verbinde Software und Hardware

Eine Quellcodezeile durchläuft mehrere Schnittstellen, bevor ein Prozessor sie ausführen kann. Anwendungen stützen sich auf Systemsoftware, Maschinenbefehle auf eine ISA, und Hardwareentwickler implementieren diese Befehle mit Logik und Transistoren. Wenn du diesen Weg verfolgst, kannst du das geforderte Verhalten eines Programms von den Entwurfsentscheidungen trennen, die seine Geschwindigkeit bestimmen, und verstehen, warum kompatible Prozessoren sehr unterschiedlich schnell sein können.

1.1 Von Anwendungen zu physischen Schaltern

Eine Abstraktion zeigt, was eine Komponente tut, und verbirgt zugleich die Einzelheiten ihrer Funktionsweise. Ein Browser kann das Betriebssystem bitten, eine Datei zu lesen, ohne die Schaltungen des Speichergeräts zu steuern. Definierte Schnittstellen ermöglichen es, Teile eines Systems zu entwerfen, zu testen und auszutauschen, ohne alle Schichten zugleich neu aufzubauen.

Die Schichten und ihre Aufgaben

Eine häufige Reihenfolge von der Aufgabe des Nutzers bis zu den physischen Bauelementen lautet:

  1. Anwendungssoftware erledigt Aufgaben wie das Bearbeiten einer Tabelle oder das Surfen im Web.
  2. Systemsoftware stellt gemeinsam genutzte Dienste bereit und übersetzt Programme. Dazu gehören Betriebssysteme, Compiler, Assembler, Linker und Bibliotheken.
  3. Die Befehlssatzarchitektur (ISA) legt die Maschinenbefehle und weiteres Verhalten fest, das für maschinennahe Software sichtbar ist.
  4. Die Mikroarchitektur oder Organisation implementiert diese ISA mit einem Datenpfad, einem Steuerwerk, Pipelines und Caches.
  5. Digitale Logik setzt Operationen und Speicher aus Gattern, Addierern, Multiplexern und Registern zusammen.
  6. Schaltungen verbinden elektronische Komponenten, um diese Logik umzusetzen.
  7. Bauelemente, vor allem Transistoren, stellen das physische Schaltverhalten bereit.

Diese Grenzen bieten nützliche Sichten auf eine Maschine. Verschiedene Diagramme können benachbarte Schichten zusammenfassen. Ein Betriebssystem ist Software: Die CPU führt seine Befehle aus, darunter privilegierte Befehle, mit denen es Ressourcen sicher verwalten kann.

Verfolge eine Addition

Betrachte die C-Anweisung total = price + tax;. Ein Compiler wählt aus, wo Werte liegen und welche Befehle die Addition ausführen. Er kann einen Additionsbefehl wählen, ohne einen Addierer zu entwerfen. Beim Entwurf der Mikroarchitektur wird dieser Befehl auf Ausführungshardware abgebildet. Die Logik des Addierers wird aus Gattern aufgebaut; beim Schaltungsentwurf werden die elektrischen Einzelheiten hinter diesen Gattern behandelt. Jede beteiligte Person nutzt eine einfachere Schnittstelle zur darunterliegenden Ebene.

Der physische Rechner hat fünf klassische Komponenten: Eingabe, Ausgabe, Speicher, Datenpfad und Steuerwerk. Der Datenpfad führt Operationen auf Daten aus. Das Steuerwerk steuert die Operationen und koordiniert Speicher sowie Ein- und Ausgabe. Zusammen bilden Datenpfad und Steuerwerk den Prozessor oder die CPU.

SpeicherHauptaufgabeBehält Daten ohne Strom?
DRAMHauptarbeitsspeicherNein
SRAMKleine, schnelle Caches nahe am ProzessorNein
Flash-Speicher oder MagnetfestplatteSekundärspeicherJa

Ein Transistor wirkt als elektrisch gesteuerter Schalter. Ein integrierter Schaltkreis oder Chip vereint viele Transistoren auf einem Stück Silizium. Diese Schalter bilden die Grundlage für Logik; die Logik ermöglicht Befehle; Befehle ermöglichen Software.

Mehr Transistoren und unterschiedliche Geschwindigkeiten

Das mooresche Gesetz begann mit Gordon Moores Beobachtung von 1965 und wurde 1975 zu einem Trend der ungefähren Verdopplung der Transistoranzahl alle zwei Jahre überarbeitet. Zehn solcher Verdopplungen vervielfachen eine Anzahl über etwa 20 Jahre um den Faktor 210=1024. Dies ist ein Herstellungstrend, keine physikalische Garantie; sein Tempo hat sich verlangsamt.

Die Einhaltung einer Schnittstelle bewahrt das von ihr zugesagte Verhalten. Sie legt weder Rechenleistung noch Energieverbrauch oder Kosten fest. Zwei Prozessoren können denselben Additionsbefehl korrekt implementieren und dabei unterschiedliche Schaltungen, Caches und Taktfrequenzen nutzen. Die Anwendung erhält dasselbe Rechenergebnis, wartet aber unterschiedlich lange darauf.

Wichtige Erkenntnisse

  • Eine Abstraktion zeigt nützliches Verhalten und verbirgt Einzelheiten der Implementierung.
  • Die Schichten verbinden Anwendungen, Systemsoftware, ISA, Mikroarchitektur, Logik, Schaltungen und Bauelemente.
  • Die CPU vereint Datenpfad und Steuerwerk; Speicher sowie Ein- und Ausgabe vervollständigen die klassische Sicht mit fünf Komponenten.
  • DRAM und SRAM sind flüchtig; Flash-Speicher und Magnetfestplatten behalten Daten ohne Strom.
  • Das mooresche Gesetz beschreibt einen Trend der Transistoranzahl, kein garantiertes Wachstum der Rechenleistung.
  • Kompatible Schnittstellen bewahren das festgelegte Verhalten, während Geschwindigkeit und Energie weiterhin von den unteren Schichten abhängen.

1.2 Wie aus Quellcode Befehle werden

Ein Prozessor führt Maschinensprache aus, also als Bits kodierte Befehle. Hochsprachencode beschreibt eine Berechnung mit Variablen, Ausdrücken, Schleifen und Funktionen. Die Übersetzung verbindet diese beiden Sichten und erweitert eine kurze Anweisung häufig zu mehreren Befehlen.

Der Weg eines kompilierten Programms

Bei einem C-Programm sind dies die wichtigsten Schritte:

SchrittEingabe und Ergebnis
CompilerÜbersetzt Quellcode in Assemblersprache oder direkt in Objektcode
AssemblerWandelt symbolische Assemblersprache in Maschinencode in einer Objektdatei um
LinkerVerbindet Objektdateien und Bibliothekscode und löst Verweise zwischen ihnen auf
LaderBildet die ausführbare Datei im Speicher ab und startet das Programm

Eine Objektdatei kann Maschinencode enthalten, ohne bereits ein vollständiges lauffähiges Programm zu sein. Beispielsweise muss der Linker bei einem Aufruf einer in einer anderen Datei definierten Funktion diesen Verweis auflösen. Der Lader ist Teil der Ausführungsunterstützung des Betriebssystems und kein weiterer Quellcodeübersetzer.

Verfolge eine C-Anweisung

Angenommen, price liegt in Register x6, tax in x7, und der Compiler legt total in x5 ab. Dann kann:

total = price + tax;

zu diesem RISC-V-Befehl werden:

add x5, x6, x7

Das Ziel steht im Assemblertext zuerst. Der Befehl addiert die Werte in x6 und x7 und schreibt das Ergebnis nach x5. Seine Kodierung im 32-Bit-R-Format ordnet die Felder anders an:

FeldBedeutung hierBits
funct7Wählt zusammen mit den anderen Operationsfeldern die Addition aus0000000
rs2Quellregister 700111
rs1Quellregister 600110
funct3Operationsauswahl000
rdZielregister 500101
opcodeBefehlsfamilie0110011

Das Aneinanderfügen der Felder ergibt 0000000 00111 00110 000 00101 0110011 oder 0x007302B3. Die Leerzeichen machen die Felder lesbar; sie werden nicht als Teil des Befehls gespeichert.

Eine Quellcodeanweisung muss nicht einem einzelnen Befehl entsprechen. Selbst wenn alle Operanden in Registern stehen, benötigt f = (g + h) - (i + j); zwei Additionen und eine Subtraktion. Das Laden von Operanden aus dem Speicher fügt Befehle hinzu. Die Anzahl der ausgeführten Befehle hängt daher von der Übersetzung und der ISA ab, nicht nur von der Anzahl der Quellcodezeilen.

Weitere Wege zum Maschinencode

Ein Hochsprachenprogramm kann oft für eine andere ISA neu kompiliert werden. Seine vorhandene ausführbare Datei ist an ihre ISA und die Konventionen des Betriebssystems gebunden. Damit eine ausführbare x86-64-Datei auf einem Arm- oder RISC-V-Rechner läuft, der sie nicht nativ ausführen kann, braucht sie eine Neukompilierung, Emulation oder Binärübersetzung.

Bytecode ist ein Zwischenformat für Befehle einer Sprachlaufzeitumgebung. CPython kompiliert Python-Quellcode zu Bytecode und interpretiert ihn mit einem Interpreterprogramm. Virtuelle Java-Maschinen verwenden häufig die Just-in-time-Kompilierung, um häufig verwendeten Bytecode während der Programmausführung in Maschinencode umzuwandeln. In beiden Fällen führt die physische CPU letztlich Maschinenbefehle aus.

Assemblersprache bleibt Text, selbst wenn eine Zeile einem echten Befehl sehr ähnelt. Ein Pseudobefehl ist eine vom Assembler akzeptierte Vereinfachung: Aus RISC-V mv x5, x6 wird addi x5, x6, 0. Die genaue Kontrolle über Befehle kann in Betriebssystemcode und kritischen Schleifen nützlich sein, verzichtet aber auf einen Teil der Portabilität und des Optimierungsspielraums für Compiler, die Hochsprachencode bietet.

Wichtige Erkenntnisse

  • Kompilieren, Assemblieren, Linken und Laden erfüllen unterschiedliche Aufgaben.
  • Assemblersprache ist symbolischer Text; Maschinencode ist die binäre Kodierung, die der Prozessor ausführt.
  • Eine Hochsprachenanweisung kann mehrere Befehle ausführen lassen, darunter Speicheroperationen.
  • Interpreter und JIT-Compiler sind auf Hardwareebene weiterhin auf Maschinenbefehle angewiesen.
  • Ein Quellprogramm kann für eine andere ISA neu kompiliert werden; seine vorhandene ausführbare Datei ist im Allgemeinen nicht portierbar.

1.3 ISA, ABI und Prozessorentwurf

Die Befehlssatzarchitektur (ISA) ist der Vertrag zwischen Hardware und Software auf der untersten Ebene. Sie sagt Programmierenden in Maschinensprache, welche Operationen existieren und was diese bedeuten. Der interne Aufbau eines Prozessors kann sich ändern, während dieser Vertrag stabil bleibt.

Was der Vertrag festlegt

Eine ISA definiert Befehle und ihre binären Kodierungen, für Programmierende sichtbare Register, das Adressierungsverhalten, unterstützte Datentypen und die Architekturmechanismen für den Zugriff auf die Ein- und Ausgabe. Ein Compiler richtet sich beim Übersetzen einer Berechnung in Befehle nach diesen Merkmalen.

Eine Implementierung ist ein physischer Entwurf, der die ISA einhält. Seine Mikroarchitektur beschreibt interne Entscheidungen, etwa zu Ausführungseinheiten, Pipelinestufen, Cachegrößen und Sprungvorhersage. Diese Entscheidungen beeinflussen die Ausführungszeit stark.

FrageArt der Entscheidung
Gibt es einen Multiplikationsbefehl und welches Ergebnis liefert er?ISA
Dauert diese Multiplikation einen oder vier Zyklen?Mikroarchitektur
Welche Register enthalten Funktionsargumente?ABI-Konvention
Wie groß ist der Cache der ersten Stufe?Mikroarchitektur

Der Unterschied betrifft das zugesagte Verhalten. Ein Programm muss das festgelegte Multiplikationsergebnis erhalten. Gewöhnlich muss es nicht wissen, wie der Multiplizierer aufgebaut wurde, um dieses Ergebnis zu erhalten.

Warum eine ISA allein für Binärkompatibilität nicht ausreicht

Die Binärschnittstelle (ABI) ergänzt die für Anwendungsprogramme sichtbare ISA um die Betriebssystemschnittstelle und binäre Konventionen. Sie legt Aufrufkonventionen wie Argumentregister sowie Datenlayout und Konventionen für Systemaufrufe fest. Zwei Maschinen können dieselben Befehlskodierungen ausführen und dennoch unterschiedlich festlegen, wie eine Funktion ein Argument erhält.

Binärkompatibilität setzt voraus, dass die ISA-Merkmale und die ABI des Programms unterstützt werden. Selbst innerhalb der x86-Familie, die 1978 mit Intels 8086 begann, sind Betriebssystemunterstützung und Ausführungsmodi wichtig. Abwärtskompatibilität hat viele ältere Programme bewahrt, während sich Prozessorimplementierungen verändert haben. Ein gemeinsamer Familienname garantiert jedoch nicht, dass jede historische ausführbare Datei in jeder Umgebung läuft.

Eine Architektur, viele Implementierungen

Intel und AMD implementieren x86-64 mit unterschiedlichen internen Entwürfen. Auch Arm und RISC-V unterstützen Implementierungen mit sehr unterschiedlichen Leistungsbudgets und unterschiedlicher Rechenleistung. RISC-V entstand 2010 an der University of California, Berkeley, und ist eine offene, lizenzgebührenfreie ISA. Zu den Basisbefehlssätzen für Ganzzahlen gehören RV32I und RV64I; zu den Standarderweiterungen gehören M für Ganzzahlmultiplikation und -division sowie F und D für Gleitkommaoperationen.

Ein Programm, das eine optionale Erweiterung nutzt, benötigt eine Implementierung, die diese unterstützt. Eine gemeinsame Basis macht nicht jede Erweiterung allgemein verfügbar. Das RISC-V-Additionsbeispiel veranschaulicht dieselbe Hardware-Software-Grenze wie bei Arm und x86, obwohl sich deren Befehle und Kodierungen unterscheiden.

Befehlsumfang und Ausführungszeit

Eine ISA kann mit einem Befehl mehr Arbeit ausdrücken und so die Befehlsanzahl verringern. Dieser Befehl kann aber auch mehr Zyklen benötigen oder eine längere Taktperiode verlangen. Entscheidend ist das vollständige Produkt:

CPU-Zeit=Befehlsanzahl×CPI×Taktperiode.

Ein umfangreicherer Befehlssatz reicht nicht aus, um festzustellen, welche Maschine schneller ist. Ebenso wenig bedeutet eine gemeinsame ISA gleiche Geschwindigkeit: Kompatible Prozessoren können unterschiedliche Taktfrequenzen, Caches und Ausführungseinheiten nutzen, um dieselben geforderten Ergebnisse zu liefern.

Wichtige Erkenntnisse

  • Die ISA legt das für Programmierende sichtbare Maschinenverhalten fest; die Mikroarchitektur implementiert es.
  • Die ABI ergänzt die binären Konventionen und die Betriebssystemschnittstelle, die ausführbare Dateien benötigen.
  • Binärkompatibilität setzt die relevanten ISA-Merkmale, die Ausführungsumgebung und die ABI voraus.
  • RISC-V kombiniert eine Basis-ISA für Ganzzahlen mit optionalen Standarderweiterungen.
  • Der Befehlsumfang verändert die Zielkonflikte zwischen Befehlsanzahl, CPI-Wert und Taktperiode.
2

Miss die Rechenleistung, auf die es ankommt

Bei der Rechenleistung geht es zunächst um die Arbeit, die erledigt werden soll: eine einzelne Aufgabe, einen Strom von Anfragen oder eine Mischung aus beidem. Die passende Zeitmessung hängt davon ab, was gebraucht wird. Unterscheide die Zeit, die ein Nutzer wartet, von der Zeit, in der ein Prozessor rechnet, und rechne dann zwischen Taktfrequenz und Zyklusdauer um. Diese Unterscheidungen verhindern, dass sich hinter demselben Wort drei verschiedene Aussagen verbergen: ein schneller Prozessor, ein leistungsfähiger Server und eine schnell reagierende Anwendung.

2.1 Zeit für eine Aufgabe und Arbeit pro Sekunde

Wer auf die Umwandlung einer Datei wartet, möchte eine kurze Antwortzeit. Ein Dienst, der viele Umwandlungen verarbeitet, benötigt außerdem einen hohen Durchsatz. Diese Größen beantworten unterschiedliche Fragen, selbst wenn beide denselben Rechner beschreiben.

Wähle die zur Aufgabe passende Größe

Die Antwortzeit, auch Ausführungszeit oder Latenz genannt, reicht vom Beginn einer Aufgabe bis zu ihrem Abschluss. Sie umfasst Berechnungen, Zugriffe auf Arbeits- und Datenspeicher, Ein- und Ausgabe sowie relevante Betriebssystemaktivität. Wartet die Aufgabe nach ihrer Einreichung in einer Warteschlange, trägt diese Wartezeit zur Antwortzeit für den Nutzer bei.

Durchsatz ist die pro Zeiteinheit abgeschlossene Arbeit. Seine Einheiten können Anfragen pro Sekunde oder Aufträge pro Stunde sein. Eine Maschine kann viele Aufträge pro Stunde abschließen, während jeder einzelne Auftrag dennoch lange dauert.

BedarfNützliche GrößeVerbesserung
Eine interaktive Anfrage abschließenAntwortzeitWeniger Sekunden pro Anfrage
Eine große unabhängige Arbeitslast verarbeitenDurchsatzMehr Anfragen pro Sekunde
Viele Personen zufriedenstellend bedienenBeideMehr abgeschlossene Arbeit bei akzeptablen Wartezeiten

Zusätzliche Prozessoren können den Durchsatz erhöhen, indem sie unabhängige Aufgaben gleichzeitig ausführen. Sie müssen die Berechnung einer einzelnen Aufgabe nicht verkürzen, können aber die Wartezeit auf einen freien Prozessor verringern. Ein schnellerer Prozessor verbessert oft beide Größen.

Vergleiche Rechenleistung in der richtigen Richtung

Für dieselbe Aufgabe definieren wir:

RechenleistungX=1TX.

Benötigt A 10 s und B 15 s, beträgt die Rechenleistung von A im Verhältnis zu B:

RechenleistungARechenleistungB=TBTA=1510=1,5.

A ist 1,5-mal so schnell. Die Rechenleistung von B beträgt zwei Drittel der Rechenleistung von A. Setze die größere Ausführungszeit über die kleinere, wenn du angibst, um welchen Faktor der schnellere Rechner schneller ist.

Bei einer Verbesserung ist der Speedup die alte Zeit geteilt durch die neue Zeit. Wird ein Build von 60 s auf 48 s verkürzt, beträgt der Speedup:

6048=1,25.

Die Zeitverkürzung beträgt:

60−4860=0,20=20%.

Die Rechenleistung stieg um 25 %, während die Zeit um 20 % sank. Diese Prozentangaben haben unterschiedliche Nenner. Die Aussage „20 % schneller“ kann verdecken, welche Größe sich verändert hat; das Verhältnis und die gemessenen Zeiten machen die Aussage klar.

Gleicher Durchsatz kann unterschiedliche Wartezeiten verbergen

Ein Dienst, der 1.200 Anfragen pro Minute abschließt, erledigt 20 Anfragen pro Sekunde. Diese Rate könnte dadurch entstehen, dass alle 50 ms eine Anfrage verarbeitet wird, wobei jede Anfrage 50 ms dauert. Sie könnte auch durch die parallele Verarbeitung von zehn Anfragen entstehen, die jeweils 500 ms dauern: Zehn Abschlüsse pro halber Sekunde ergeben wiederum 20 pro Sekunde.

Die zweite Anordnung hat denselben Durchsatz, aber die zehnfache Verarbeitungszeit pro Anfrage. Ein Durchsatzergebnis allein kann die Latenz, die ein Nutzer erlebt, nicht bestimmen. Vergleiche dieselbe abgeschlossene Arbeit, gib das Zeitintervall an und behalte beim Umrechnen zwischen Minuten und Sekunden die Einheiten bei.

Wichtige Erkenntnisse

  • Die Antwortzeit misst die Dauer einer Aufgabe; der Durchsatz misst die abgeschlossene Arbeit pro Zeiteinheit.
  • Für dieselbe Aufgabe ist die Rechenleistung der Kehrwert der Ausführungszeit.
  • Der Speedup ist die alte Zeit geteilt durch die neue Zeit; die prozentuale Zeitverkürzung hat die alte Zeit als Nenner.
  • Zusätzliche Prozessoren können den Durchsatz erhöhen, ohne die Berechnung einer sequenziellen Aufgabe zu verkürzen.
  • Gleicher Durchsatz kann mit sehr unterschiedlichen Latenzen für Anfragen einhergehen.

2.2 Lies Zeitmessergebnisse und rechne Takteinheiten um

Eine Stoppuhr misst alles zwischen Start und Ende. Die CPU-Leistungsgleichung misst die Prozessorarbeit. Wenn du diese Sichten trennst, schreibst du einer Prozessoraufrüstung keine Verkürzung von Wartezeiten zu, die sie nicht beseitigen kann.

Gesamtlaufzeit und Prozessorzeit

Die Gesamtlaufzeit oder Wanduhrzeit umfasst Berechnungen, das Warten auf Dateien oder das Netzwerk sowie Zeitabschnitte, in denen andere Prozesse laufen. Die CPU-Zeit erfasst die Prozessorzeit, die der Aufgabe zugerechnet wird. In der Benutzer-CPU-Zeit wird der Programmcode ausgeführt; in der System-CPU-Zeit wird Betriebssystemcode im Auftrag des Programms ausgeführt.

Angenommen, der Unix-Befehl time meldet „real 2.50 s, user 1.80 s, sys 0.20 s.“ Das Programm verbrauchte:

1,80+0,20=2,00 s

CPU-Zeit. In diesem Zeitmessungsbeispiel mit einem einzelnen Thread stehen die verbleibenden 0,50 s für Zeit, die nicht als CPU-Ausführung zugerechnet wurde, etwa beim Warten oder während der Prozess nicht zur Ausführung eingeplant war. Halbiert eine Prozessorverbesserung den CPU-Anteil, während diese Wartezeit gleich bleibt, wird die Gesamtlaufzeit zu:

0,50+2,002=1,50 s.

Würdest du die gesamten 2,50 s halbieren, würdest du fälschlich auch die Wartezeit beschleunigen. Bei der CPU-Leistung steht oft die Benutzerzeit im Mittelpunkt; die Systemleistung wird anhand der Gesamtlaufzeit bei kontrollierter Systemlast beurteilt.

Bei einem parallelen Programm wird die CPU-Zeit über seine Threads und Kerne summiert. Vier Kerne, die den größten Teil einer Sekunde arbeiten, können während 1,0 s Gesamtlaufzeit 3,6 s Benutzerzeit erzeugen. In diesem Fall misst die Differenz aus Gesamtlaufzeit und summierter CPU-Zeit nicht die Wartezeit.

Die Taktfrequenz ist der Kehrwert der Taktperiode

Ein Takt gibt synchroner Hardware einen zeitlichen Rhythmus. Die Taktperiode ist die Anzahl der Sekunden pro Zyklus; die Taktfrequenz ist die Anzahl der Zyklen pro Sekunde:

Taktperiode=1Taktfrequenz.

Bei 4 GHz beträgt die Frequenz vier Milliarden Zyklen pro Sekunde. Ein Zyklus dauert:

14×109 s=0,25 ns=250 ps.

Bei 2,5 GHz beträgt die Taktperiode 400 ps. Umgekehrt ergeben 312,5 ps pro Zyklus:

1312,5×10−12 Hz=3,2 GHz.
Präfix oder EinheitWert
GHz109 Zyklen/s
ns10−9 s
ps10−12 s
KiB210=1024 Byte
GiB230=1.073.741.824 Byte

Präfixe für Zeit und Frequenz verwenden dezimale Potenzen. Binäre Speicherpräfixe verwenden Zweierpotenzen. Bezeichnungen wie „GB“ werden mitunter ungenau für binäre Größen verwendet; prüfe deshalb vor dem Umrechnen einer Größe, was gemeint ist.

Deute eine Messung als Ergebnis eines Laufs

Die beworbene Frequenz eines Prozessors hält nicht jeden Augenblick seiner Ausführung fest. Kurzzeitige Takterhöhungen, Energieverwaltung und thermische Drosselung verändern die Frequenz. Auch Cacheinhalte und Hintergrundaktivität verändern die gemessene Zeit. Wiederhole eine Messung und gib einen typischen Wert wie den Median an. Das hilft, ein stabiles Ergebnis von einem ungewöhnlich günstigen Lauf zu unterscheiden. Verwende Zeit- und Frequenzmessungen aus demselben Ausführungsintervall, wenn du sie mit Zyklenanzahlen verknüpfst.

Wichtige Erkenntnisse

  • Die Gesamtlaufzeit umfasst Wartezeiten; die CPU-Zeit umfasst die der Aufgabe zugerechnete Benutzer- und Systemzeit.
  • Die über mehrere Kerne summierte CPU-Zeit kann die Gesamtlaufzeit übersteigen.
  • Taktperiode und Taktfrequenz sind Kehrwerte; achte auf einheitliche Sekunden, Nanosekunden und Pikosekunden.
  • GHz verwendet dezimale Zehnerpotenzen; KiB und GiB verwenden binäre Zweierpotenzen.
  • Takterhöhung, Drosselung, Caches und Hintergrundarbeit können das Ergebnis von Lauf zu Lauf verändern.
  • Ein CPU-Speedup verringert den CPU-Anteil der Gesamtlaufzeit; nicht betroffene Wartezeiten bleiben bestehen.
3

Berechne und vergleiche CPU-Zeiten

Die CPU-Zeit eines Programms ergibt sich daraus, wie viele Befehle es ausführt, wie viele Zyklen diese Befehle benötigen und wie lange jeder Zyklus dauert. Diese Faktoren können sich in entgegengesetzte Richtungen verändern, wenn sich ein Compiler oder Prozessor ändert. Berechne zunächst Zyklenbudgets und Befehlsmixe, bevor du vollständige Ausführungszeiten vergleichst. Nutze dann dieselben Zusammenhänge, um Aussagen zur Taktfrequenz und Befehlsrate sowie zusammengefasste Benchmark-Ergebnisse zu beurteilen.

3.1 Berechne aus einem Zyklenbudget die CPU-Zeit

Ein Taktzyklus ist eine Einheit der Prozessorzeit, kein Befehl. Manche Befehle benötigen viele Zyklen, und durch überlappende Ausführung können mehrere Befehle pro Zyklus abgeschlossen werden. Beginne mit den insgesamt für das Programm benötigten Zyklen.

Teile Zyklen durch Zyklen pro Sekunde

Benötigt ein Programm eine bekannte Anzahl von Zyklen, beträgt seine CPU-Zeit:

T=Zyklen×Taktperiode=ZyklenTaktfrequenz.

Für sechs Milliarden Zyklen bei 3 GHz:

T=6×1093×109=2 s.

Die Einheiten erklären die Division: Zyklen geteilt durch Zyklen pro Sekunde ergeben Sekunden. Die Multiplikation von Zyklen mit der Frequenz würde Zyklen zum Quadrat pro Sekunde ergeben, keine Dauer. Die Multiplikation mit der Taktperiode funktioniert, weil ihre Einheit Sekunden pro Zyklus ist.

Mit derselben Gleichung kannst du eine andere Unbekannte bestimmen. Multipliziere Zeit und Frequenz, um die Zyklenanzahl zu erhalten; dividiere die Zyklenanzahl durch die Zielzeit, um die benötigte Frequenz zu finden. Gib die Frequenz in Hz an, wenn die Zeit in Sekunden angegeben ist, oder kürze entsprechende Milliardenfaktoren ausdrücklich.

Wenn ein schnellerer Takt mehr Zyklen erfordert

Prozessor A führt ein Programm bei 3 GHz in 10 s aus. Sein Zyklenbudget beträgt:

10×3×109=3×1010 Zyklen.

Ein vorgeschlagener Entwurf B erhöht diese Zyklenanzahl um 20 %. B muss daher ausführen:

1,2×3×1010=3,6×1010 Zyklen.

Um in 9 s fertig zu werden, benötigt B:

fB=3,6×10109=4×109 Hz=4 GHz.

Das Verhältnis der Taktfrequenzen beträgt vier Drittel, etwa 1,33. Der tatsächliche Speedup beträgt nur zehn Neuntel, etwa 1,11, weil B mehr Taktzyklen braucht, um die Arbeit abzuschließen. Würdest du annehmen, dass die alte Zyklenanzahl unverändert bleibt, würdest du eine Taktfrequenz vorhersagen, die zu niedrig ist, um das Ziel zu erreichen.

Vergleiche einen Zielkonflikt ohne bestimmte Programmgröße

Ein Entwurf multipliziere die alte Zyklenanzahl mit einem Faktor a und die alte Taktfrequenz mit einem Faktor b. Dann gilt:

TneuTalt=ab.

Der Entwurf ist schneller, wenn der Wachstumsfaktor der Zyklenanzahl kleiner ist als der Wachstumsfaktor der Frequenz. Wachsen beide um denselben Faktor, bleibt die CPU-Zeit unverändert. Dieses Verhältnis ist nützlich, wenn ein Entwurfsvorschlag prozentuale Änderungen, aber keine absolute Zyklenanzahl angibt.

Warum die Taktperiode eine physikalische Schranke hat

Zwischen Registern durchlaufen Signale kombinatorische Logik und müssen sich stabilisieren, bevor ihre Ergebnisse übernommen werden. Der langsamste benötigte Pfad ist der kritische Pfad. Die Schaltungstechnologie und der einer Stufe zugewiesene Arbeitsumfang begrenzen, wie kurz eine sichere Taktperiode sein kann.

Beim Entwurf kann die Arbeit auf kürzere Pipelinestufen verteilt werden, um einen schnelleren Takt zu ermöglichen; die Umgestaltung kann aber auch die Zyklenanzahl verändern. Mehr GHz ist daher eine Aussage über die Taktfrequenz. Um eine Verbesserung der Rechenleistung festzustellen, verbinde sie mit der Anzahl der Zyklen, die das Programm bei diesem Entwurf tatsächlich benötigt.

Wichtige Erkenntnisse

  • Die CPU-Zeit entspricht der Zyklenanzahl mal Taktperiode oder der Zyklenanzahl geteilt durch die Taktfrequenz.
  • Zeit mal Taktfrequenz ergibt die Zyklenanzahl; die Zyklenanzahl geteilt durch die Zielzeit ergibt die benötigte Taktfrequenz.
  • Vergleiche den Faktor der Zyklenanzahl mit dem Frequenzfaktor, wenn sich beide ändern.
  • Der kritische Pfad begrenzt die Taktperiode, und eine Neuordnung der Arbeit kann die Zyklenanzahl verändern.

3.2 Gewichte den CPI-Wert nach den ausgeführten Befehlen

Taktzyklen pro Befehl (CPI) ist die Gesamtzahl der CPU-Taktzyklen eines Programms geteilt durch seine Anzahl ausgeführter Befehle. Der CPI-Wert ist ein Durchschnitt über einen Lauf, kann also gebrochen sein und hängt davon ab, welche Befehle ausgeführt werden und wie sie mit der Maschine zusammenwirken.

Addiere die Zyklen vor der Mittelwertbildung

Für Befehlsklassen mit den Anzahlen Ci und den CPI-Werten ci gilt:

Zyklen=∑iCici,CPI=∑iCici∑iCi.

Gleichwertig dazu kannst du jeden CPI-Wert einer Klasse mit ihrem Anteil an der Befehlsanzahl multiplizieren und die Beiträge addieren. Die Anteile müssen ausgeführte Befehle beschreiben, nicht Quellcodezeilen oder die Anzahl der Befehlsarten.

Angenommen, ALU-Befehle benötigen 1 Zyklus, Lade- und Speicherbefehle 4 und bedingte Sprünge 2. Ein Mix von 50 %, 30 % und 20 % ergibt:

0,50(1)+0,30(4)+0,20(2)=0,50+1,20+0,40=2,1.

Für fünf Milliarden Befehle bei 3 GHz ergeben sich insgesamt 10,5 Milliarden Zyklen und eine CPU-Zeit von 3,5 s. Das ungewichtete Mittel der drei Zyklenzahlen pro Klasse von etwa 2,33 ist falsch: Die Klassen kommen nicht gleich häufig vor.

Mehr Befehle können trotzdem weniger Zyklen bedeuten

Zwei Compilerversionen verwenden dieselben Zyklenzahlen pro Klasse:

KlasseZyklen pro BefehlVersion 1, MillionenVersion 2, Millionen
ALU1400600
Laden/Speichern4300150
Bedingter Sprung2100100

Version 1 führt 800 Millionen Befehle aus. Die Beiträge der Klassen betragen 400, 1.200 und 200 Millionen Zyklen, insgesamt 1.800 Millionen. Ihr CPI-Wert beträgt:

1800800=2,25.

Version 2 führt 850 Millionen Befehle aus. Ihre Beiträge betragen 600, 600 und 200 Millionen Zyklen, insgesamt 1.400 Millionen. Ihr CPI-Wert beträgt:

1400850≈1,65.

Bei 3 GHz betragen die Zeiten 0,60 s und etwa 0,467 s. Version 2 ist etwa 1,29-mal so schnell, obwohl sie 50 Millionen Befehle mehr ausführt. Der Ersatz vieler aufwendiger Speicherbefehle durch mehr günstige ALU-Befehle kann diesen Kompromiss lohnend machen.

Der CPI-Wert gehört zu einer Arbeitslast auf einer Maschine

Speicherwartezyklen, Cache-Fehlzugriffe, Sprungverhalten und Compilerentscheidungen verändern den effektiven CPI-Wert. Ein einzelner „Prozessor-CPI-Wert“ kann nicht jedes Programm beschreiben. Hardware-Leistungszähler oder ein Simulator können die Gesamtzahl der Befehle und Zyklen für die untersuchte Arbeitslast messen.

Befehle pro Taktzyklus (IPC) setzt dieselben Gesamtzahlen in umgekehrter Reihenfolge ins Verhältnis:

IPC=1CPI.

Ein IPC-Wert von 2,5 ergibt einen CPI-Wert von 0,4. In einem Prozessor, der mehrere Befehle pro Zyklus ausgibt und abschließt, können mehrere Befehle überlappend ausgeführt werden. Ein Durchschnitt unter eins bedeutet nicht, dass ein einzelner Befehl seinen gesamten Weg innerhalb eines Bruchteils eines Taktzyklus zurücklegt.

Wichtige Erkenntnisse

  • Berechne die Gesamtzahl der Zyklen, indem du für jede Klasse ihre Befehlsanzahl mit ihrem CPI-Wert multiplizierst und die Ergebnisse addierst.
  • Der durchschnittliche CPI-Wert gewichtet die Zyklenzahlen der Klassen mit ihren Anteilen an den ausgeführten Befehlen.
  • Eine längere Befehlsfolge kann schneller laufen, wenn ihre Gesamtzahl an Zyklen kleiner ist.
  • Der CPI-Wert hängt vom Programm, vom Compiler und vom Verhalten der Maschine während des Laufs ab.
  • Der IPC-Wert ist der Kehrwert des CPI-Werts; überlappende Ausführung kann einen CPI-Wert unter eins ergeben.

3.3 Kombiniere Befehlsanzahl, CPI-Wert und Taktfrequenz

Die CPU-Leistungsgleichung führt die drei Zeitfaktoren zusammen:

T=I×CPI×tZyklus=I×CPIf.

Dabei zählt I die ausgeführten Befehle und f ist die während der Ausführung geltende Taktfrequenz. Befehle mal Zyklen pro Befehl ergeben Zyklen. Die Division durch Zyklen pro Sekunde ergibt anschließend Sekunden.

Berechne eine Zeit und bestimme eine Unbekannte

Ein Programm führt auf einem 2,5-GHz-Prozessor zwei Milliarden Befehle bei einem CPI-Wert von 1,5 aus. Bestimme zuerst die Gesamtzahl der Zyklen und rechne sie dann in Zeit um:

2×109×1,5=3×109 Zyklen, T=3×1092,5×109=1,2 s.

Um den CPI-Wert aus der gemessenen Zeit zu bestimmen, forme dieselbe Gleichung um:

CPI=TfI.

Für 1,6 Milliarden Befehle in 0,8 s bei 3,2 GHz ergeben sich 2,56 Milliarden Zyklen. Die Division durch 1,6 Milliarden Befehle ergibt einen CPI-Wert von 1,6.

Vergleiche vollständige Produkte

Zwei Prozessoren führen dasselbe kompilierte Programm mit derselben Befehlsanzahl aus. A hat 4 GHz und CPI 1,8; B hat 2,5 GHz und CPI 1,0. Ihre Zeit pro Befehl beträgt:

1,84×109=0,45 ns,1,02,5×109=0,40 ns.

B ist 1,125-mal so schnell. Sein niedrigerer CPI-Wert gleicht seinen langsameren Takt mehr als aus. Die Befehlsanzahl kürzt sich hier heraus, weil sie gleich ist; sie würde sich nicht herauskürzen, wenn die beiden Programme unterschiedlichen Befehlsfolgen folgen würden.

Ebenso verändert eine Compileroption, die bei gleicher Frequenz die Befehlsanzahl um 10 % senkt, den CPI-Wert aber um 15 % erhöht, die Zeit um folgenden Faktor:

0,90×1,15=1,035.

Die Zeit steigt um 3,5 %. Die Verringerung der Befehlsanzahl allein weist in die falsche Richtung.

Verbinde Entwurfsentscheidungen mit den Faktoren
EntscheidungFaktoren, die sie verändern kann
AlgorithmusBefehlsanzahl und möglicherweise CPI-Wert
Programmiersprache oder CompilerBefehlsanzahl und CPI-Wert
ISABefehlsanzahl, CPI-Wert und Taktfrequenz
OrganisationCPI-Wert und Taktfrequenz
SchaltungstechnologieTaktfrequenz

Diese Zusammenhänge sind für die Analyse nützlich, aber keine unabhängigen Stellgrößen, die sich immer ohne Folgen verändern lassen. Ein Cache verringert Speicherwartezyklen und senkt so den effektiven CPI-Wert. Pipelining überlappt aufeinanderfolgende Befehle und kann den effektiven CPI-Wert senken oder eine kürzere Taktperiode ermöglichen. Solche Änderungen können andere Kosten mit sich bringen, die in den gemessenen Gesamtzahlen sichtbar werden.

Halte das Messintervall einheitlich

Miss CPU-Zeit, Befehlsanzahl, Zyklen und Frequenz für dieselbe Arbeit. Zähler oder Simulationen liefern Befehls- und Zyklenanzahlen. Die GHz-Nennfrequenz eines Produkts dokumentiert nicht den Frequenzverlauf eines Laufs mit Takterhöhung oder Drosselung. Wenn die Frequenz schwankt, ist der passende Mittelwert die Gesamtzahl der gezählten Zyklen geteilt durch die CPU-Zeit für dieses Intervall.

Die Gleichung sagt die CPU-Ausführungszeit voraus. Das Warten auf Datenspeicher oder Netzwerk gehört zur Gesamtlaufzeit und muss gesondert berücksichtigt werden, wenn dieses Ergebnis gebraucht wird.

Wichtige Erkenntnisse

  • Die CPU-Zeit ist die Befehlsanzahl mal CPI-Wert geteilt durch die Taktfrequenz.
  • Forme die Gleichung um, um aus gemessenen Größen den CPI-Wert, die Befehlsanzahl oder die benötigte Frequenz zu bestimmen.
  • Kürze die Befehlsanzahl nur heraus, wenn die verglichenen Ausführungen dieselbe Anzahl haben.
  • Änderungen an Compiler und Hardware können einen Faktor verbessern und gleichzeitig einen anderen verschlechtern.
  • Verwende die Frequenz und die Anzahlen desselben Laufs, nicht eine beworbene Taktfrequenz.
  • Addiere nicht betroffene Wartezeiten gesondert, wenn du die Gesamtlaufzeit vorhersagst.

3.4 Beurteile Benchmark-Ergebnisse und Aussagen zur Befehlsrate

Eine nützliche Aussage zur Rechenleistung bezieht sich auf Arbeit, die für den Nutzer wichtig ist. Ein Benchmark führt eine ausgewählte Arbeitslast aus, um die Rechenleistung zu messen. Eine Benchmark-Suite erfasst mehrere Arbeitslasten, wenn eine Anwendung den gesamten Bedarf nicht repräsentieren kann.

Lies die Art des SPEC-Ergebnisses

SPEC CPU 2026, veröffentlicht im Mai 2026, folgt auf SPEC CPU 2017. Seine Suites beanspruchen Prozessoren, Speichersysteme und Compiler. SPECspeed misst die Zeit bis zum Abschluss einer einzelnen Programminstanz; diese Instanz kann selbst mehrere Threads nutzen. SPECrate misst den Durchsatz mit mehreren Instanzen. Ganzzahl- und Gleitkomma-Suites dienen unterschiedlichen Arbeitslastarten, und das Produkt unterstützt auch Energiekennzahlen.

Eine Geschwindigkeitsverhältniszahl für ein einzelnes Programm vergleicht die Referenzzeit mit der gemessenen Zeit:

r=TReferenzTgemessen.

Eine Referenzzeit von 3.000 s und eine gemessene Zeit von 250 s ergeben 12. Ein höherer Wert ist besser. Eine Durchsatzverhältniszahl berücksichtigt die Anzahl der im gemessenen Intervall abgeschlossenen Instanzen. Vergleiche gleichartige Kennzahlen und dieselbe Suite-Version; ein Geschwindigkeits- und ein Durchsatzergebnis beantworten unterschiedliche Fragen.

Fasse Verhältniszahlen mit einem geometrischen Mittel zusammen

Für positive Verhältniszahlen verwendet die Suite:

G=r1r2⋯rnn.

Die Verhältniszahlen 2, 8 und 4 ergeben ein Produkt von 64 und eine Kubikwurzel von 4. Ihr arithmetisches Mittel beträgt etwa 4,67, ein anderes Ergebnis.

Der Vergleich der geometrischen Mittel hängt nicht davon ab, welcher Referenzrechner die Verhältniszahlen bestimmt. Angenommen, X benötigt für zwei Programme 10 s und 40 s, während Y 20 s und 25 s benötigt. Referenzzeiten von jeweils 100 s ergeben für X die Verhältniszahlen 10 und 2,5 und für Y 5 und 4. Die geometrischen Mittel sind 5 und etwa 4,47, sodass X um etwa den Faktor 1,12 vorn liegt.

Ändere die Referenzzeiten auf 50 s und 200 s: X erhält die Verhältniszahlen 5 und 5, Y erhält 2,5 und 8. Ihre geometrischen Mittel bleiben 5 und etwa 4,47. Die arithmetischen Mittel ändern sich dagegen von 6,25 gegenüber 4,5 auf 5 gegenüber 5,25 und kehren die Rangfolge um. Die Normierung auf eine Referenz darf nicht entscheiden, welche Maschine schneller erscheint.

Warum MIPS langsameren Code belohnen kann

MIPS, Millionen Befehle pro Sekunde, ist:

MIPS=ITCPU×106=fCPI×106.

Befehle leisten bei verschiedenen ISAs unterschiedlich viel nützliche Arbeit. Selbst auf einer Maschine ändert sich MIPS mit dem Programm, und eine höhere Befehlsrate kann mit einer längeren Ausführungszeit einhergehen.

Bei 3 GHz benötigen ALU-Befehle, Lade- und Speicherbefehle sowie bedingte Sprünge 1, 4 und 2 Zyklen. Code Q führt davon 400, 300 und 100 Millionen aus: 800 Millionen Befehle, 1.800 Millionen Zyklen, 0,60 s, etwa 1.333 MIPS. Code P führt 1.500, 100 und 100 Millionen aus: 1.700 Millionen Befehle, 2.100 Millionen Zyklen, 0,70 s, etwa 2.429 MIPS. P schließt Befehle schneller ab, beendet die Aufgabe aber später.

Spitzenleistungen beschreiben die ideale Leistungsfähigkeit der Hardware. Reale Arbeitslasten können aufgrund von Abhängigkeiten, Speicherwartezeiten und anderen Beschränkungen viel weniger erreichen. Beurteile die Leistung bei einer Aufgabe anhand ihrer tatsächlichen Dauer; Frequenz, MIPS und Spitzenleistungen erklären davon nur ausgewählte Teile.

Wichtige Erkenntnisse

  • Wähle Benchmarks, die die vorgesehene Arbeitslast repräsentieren.
  • SPECspeed misst die Abschlusszeit einer Instanz; SPECrate misst den Durchsatz über mehrere Instanzen.
  • Ein größeres Verhältnis von Referenzzeit zu gemessener Zeit zeigt eine bessere Rechenleistung an.
  • Verwende das geometrische Mittel, um positive normierte Verhältniszahlen zusammenzufassen, ohne dass die Rangfolge von der Referenz abhängt.
  • MIPS kann steigen, während eine Aufgabe langsamer wird, und Befehle verschiedener ISAs leisten unterschiedlich viel Arbeit.
  • Spitzenleistungen beschreiben die ideale Leistungsfähigkeit, nicht die gemessene Ausführungszeit einer Aufgabe.
4

Bestimme die Grenzen einer Verbesserung

Eine Verbesserung wirkt sich nur auf den Teil einer Aufgabe aus, der sie nutzen kann. Eine schnellere Recheneinheit verändert die Wartezeiten auf Dateien nicht, und zusätzliche Kerne lassen sequenzielle Arbeit auf einem Kern. Das amdahlsche Gesetz macht aus dieser Aufteilung ein Zeitbudget und zeigt sowohl wahrscheinliche Gewinne als auch feste Schranken. Dieselbe Überlegung hilft, eine Optimierung auszuwählen, von einem Ziel aus rückwärtszurechnen und zu erklären, warum parallele Arbeitslasten mit fester und mit wachsender Größe unterschiedliche Ergebnisse zeigen.

4.1 Berechne den Gewinn durch die Verbesserung eines Aufgabenteils

Das amdahlsche Gesetz beginnt damit, die ursprüngliche Ausführungszeit in einen betroffenen Anteil und einen nicht betroffenen Anteil aufzuteilen. Beschleunige nur die betroffene Zeit und addiere die Teile anschließend wieder. So wendest du eine lokale Verbesserung nicht auf Arbeit an, die sie nicht verändern kann.

Berechne die neue Zeit aus den alten Zeiten

Wird der betroffene Teil s-mal so schnell, gilt:

Tneu=Tbetroffens+Tnicht betroffen.

Sei f der betroffene Anteil der ursprünglichen Ausführungszeit. Die Division durch die ursprüngliche Zeit ergibt die Speedup-Form:

S=1(1−f)+f/s.

Ein Programm mit 120 s Laufzeit verbringt 90 s mit Gleitkommaoperationen und 30 s mit anderer Arbeit. Der betroffene Anteil ist somit 0,75. Werden die Gleitkommaoperationen dreimal so schnell, sinkt ihre Zeit auf 30 s:

Tneu=903+30=60 s,S=12060=2.

Die Gleitkommaarbeit wird um den Faktor drei schneller, das vollständige Programm um den Faktor zwei. Die unveränderten 30 s erklären den Unterschied.

Rechne von einem Ziel aus rückwärts

Um dieselbe Aufgabe in 40 s abzuschließen, benötigt die unveränderte Arbeit weiterhin 30 s. Für den ursprünglichen Gleitkommateil von 90 s bleiben nur 10 s. Daher gilt:

40=90s+30,s=9010=9.

Ein Ziel von 30 s ließe keine Zeit für diese Arbeit. Keine endliche Beschleunigung lässt eine positive Menge betroffener Arbeit genau null Zeit benötigen. Wächst der lokale Speedup unbegrenzt, nähert sich der Gesamt-Speedup:

SSchranke=11−f.

Hier ist die Schranke 4; sie wird von unten angenähert. Bei einem nicht betroffenen Anteil von einem Halb liegt die Schranke bei 2. Ist die gesamte Arbeit betroffen, gibt es keine unveränderte positive Zeit, die eine solche endliche obere Schranke setzt.

Optimiere dort, wo die Zeit verbraucht wird

Das Prinzip Beschleunige den häufigen Fall bedeutet, zu bestimmen, wo tatsächlich Ausführungszeit verbraucht wird. Profiling misst diese Aufteilung. Eine Verdopplung der Geschwindigkeit eines Teils, der 60 % der Zeit beansprucht, ergibt:

S=10,40+0,60/2≈1,43.

Eine zehnfache Verbesserung eines Anteils von 10 % ergibt nur:

S=10,90+0,10/10≈1,10.

Ein großer lokaler Faktor kann weniger bringen als eine mäßige Verbesserung, die auf einen größeren Teil der Aufgabe wirkt.

Der betroffene Anteil muss ein Zeitanteil sein. Machen Lade- und Speicherbefehle 30 % der Befehle aus, benötigen aber 60 % der Zyklen, beträgt ihr Zeitanteil bei fester Taktfrequenz 0,60. Wer Befehle gleich zählt, übersieht ihren höheren Aufwand.

Wende dieselbe Aufteilung auf Wartezeiten an

Bei einer Aufgabe mit 2,00 s CPU-Arbeit und 0,50 s fester Wartezeit auf Dateien ergibt eine Verdopplung der CPU-Geschwindigkeit insgesamt 1,50 s. Der Speedup beträgt etwa 1,67. Dasselbe Zeitbudget funktioniert für Verbesserungen an Hardware, Software und Ein- und Ausgabe: Bestimme genau, welche ursprüngliche Zeit sich verändert, bevor du den Faktor anwendest.

Wichtige Erkenntnisse

  • Das amdahlsche Gesetz beschleunigt die betroffene Zeit und behält die nicht betroffene Zeit in der Gesamtzeit bei.
  • Der betroffene Anteil ist ein Anteil der ursprünglichen Zeit, nicht der Befehle oder Quellcodezeilen.
  • Ziehe die nicht betroffene Zeit von der Zielzeit ab, um die erforderliche lokale Verbesserung zu bestimmen.
  • Ein positiver nicht betroffener Anteil setzt dem Speedup die Schranke eins geteilt durch diesen Anteil.
  • Profiling hilft, Verbesserungen zu finden, die einen großen Anteil der Ausführungszeit betreffen.

4.2 Schätze Speedup und Effizienz über mehrere Kerne ab

Mehr Kerne verkürzen eine Aufgabe nur, wenn Arbeit gleichzeitig ausgeführt werden kann. Teile die ursprüngliche Zeit einer festen Aufgabe auf einem einzelnen Kern in einen sequenziellen und einen parallelen Teil auf und betrachte dann, was zusätzliche Kerne verändern können.

Das amdahlsche Gesetz für eine Aufgabe fester Größe

Sei p der parallelisierbare Anteil der ursprünglichen Zeit auf einem einzelnen Kern. Bei perfekter Aufteilung auf N Kerne und ohne zusätzlichen Aufwand gilt:

S(N)=1(1−p)+p/N.

Bei einem parallelisierbaren Anteil von 0,95 beträgt der sequenzielle Anteil 0,05. Acht Kerne ergeben:

S(8)=10,05+0,95/8≈5,93.

Bei 100 Kernen beträgt der Speedup etwa 16,8; bei 1.000 Kernen etwa 19,6. Die sequenziellen 5 % halten den Speedup bei fester Größe unter 20, unabhängig davon, wie viele Kerne hinzukommen.

Die parallele Effizienz ist der Speedup geteilt durch die Anzahl der Kerne. Die Effizienz bei acht Kernen beträgt etwa 0,74 oder 74 %. Bei 100 Kernen beträgt sie etwa 17 %. Ein größerer Speedup kann mit geringerer Effizienz einhergehen, weil jeder zusätzliche Kern weniger zur festen Aufgabe beiträgt.

Warum gemessene Gewinne kleiner sein können

Das ideale Modell verteilt die parallele Arbeit gleichmäßig und setzt keine Koordinationskosten voraus. Reale Programme kommunizieren und synchronisieren sich, und einige Kerne erhalten mehr Arbeit als andere.

Bei 100 gleichen Einheiten unabhängiger Arbeit auf vier identischen Kernen erhält bei einer gleichmäßigen Zuweisung jeder 25 Einheiten. Erhält einer 40 Einheiten, während die übrigen früher fertig werden, muss der Abschluss auf diesen am stärksten ausgelasteten Kern warten. Der Speedup beträgt 100 geteilt durch 40, also 2,5, noch bevor Kommunikationskosten hinzukommen. Die Addition der früheren Fertigstellungszeiten der anderen Kerne würde nicht die Abschlusszeit ergeben: Das letzte benötigte Ergebnis bestimmt sie.

Ein Programm mit einem einzelnen Thread hat keinen parallelisierbaren Anteil, der verteilt werden kann. Mehr Kerne können dennoch andere Programme ausführen und den Systemdurchsatz verbessern, teilen den Befehlsstrom dieses Programms aber nicht automatisch auf.

Feste und wachsende Arbeit beantworten unterschiedliche Fragen

Starke Skalierung hält die Gesamtgröße des Problems fest und fragt, um welchen Faktor mehr Prozessoren es schneller abschließen können. Schwache Skalierung lässt die Gesamtarbeit proportional zur Prozessoranzahl wachsen, sodass die Arbeit pro Prozessor etwa konstant bleibt. Eine größere Simulation kann ein feineres Gitter verwenden und dabei ungefähr dieselbe Arbeitslast pro Prozessor beibehalten.

Das gustafsonsche Gesetz beschreibt skalierte Arbeit, wenn die sequenzielle Zeit fest bleibt, während die parallele Arbeit wächst. Sein sequenzieller Anteil s wird beim parallelen Lauf gemessen, anders als der ursprüngliche Anteil auf einem einzelnen Kern bei Amdahl:

Sskaliert=s+(1−s)N.

Für einen gemessenen sequenziellen Anteil von 0,05 auf 100 Kernen beträgt der skalierte Speedup 95,05. Das widerspricht nicht Amdahls Schranke von 20 für eine feste Aufgabe, deren ursprünglicher sequenzieller Anteil 5 % betrug. Die Aufgabengröße und die Messgrundlage des Anteils unterscheiden sich.

Parallele Software muss unabhängige Arbeit bereitstellen, sie gleichmäßig verteilen und die Ergebnisse koordinieren. Mehr Hardware stellt Kapazität bereit; die Struktur des Programms bestimmt, wie viel davon seine Abschlusszeit verkürzt.

Wichtige Erkenntnisse

  • Teile bei idealer Skalierung mit fester Größe nur die ursprüngliche parallele Zeit durch die Anzahl der Kerne.
  • Der ursprüngliche sequenzielle Anteil setzt Amdahls Schranke für den Speedup mit mehreren Kernen.
  • Die parallele Effizienz ist der Speedup geteilt durch die Anzahl der Kerne.
  • Kommunikation, Synchronisierung und ungleichmäßige Arbeitsverteilung verringern die Gewinne.
  • Bei starker Skalierung bleibt die Gesamtarbeit fest; bei schwacher Skalierung bleibt die Arbeit pro Prozessor ungefähr fest.
  • Das gustafsonsche Gesetz verwendet für eine wachsende Arbeitslast einen beim parallelen Lauf gemessenen sequenziellen Anteil.
5

Verbinde Leistungsgrenzen mit dem Entwurf von Mehrkernprozessoren

Ein Prozessor muss Arbeit sowohl innerhalb eines Zeitbudgets als auch innerhalb eines Leistungsbudgets abschließen. Das Schalten von Transistoren verbraucht Energie, die Spannung beeinflusst diesen Verbrauch stark, und Wärme begrenzt, wie stark ein Chip betrieben werden kann. Verbinde diese Zusammenhänge mit dem Ende der idealen Transistorskalierung und dem Übergang zu mehreren Kernen. So wird verständlich, warum mehr Transistoren weiterhin nützlich sein können, selbst wenn höhere Taktfrequenzen allein den nächsten Leistungsgewinn nicht liefern können.

5.1 Berechne Schaltleistung und Energie für eine Aufgabe

CMOS-Prozessoren verbrauchen Energie, wenn Signale schalten, und im eingeschalteten Zustand auch durch Leckströme. Dynamischer Energieverbrauch entsteht beim Schalten; statische Leistungsaufnahme fällt auch ohne nützliche Schaltvorgänge an. Ihre jeweiligen Anteile hängen vom Chip und seiner Arbeitslast ab.

Die Spannung wirkt quadratisch

Die Energie eines Übergangs skaliert mit der Kapazität und dem Quadrat der Versorgungsspannung. Ein gebräuchlicher Ausdruck verwendet die Hälfte der Kapazität mal Spannung zum Quadrat; ein vollständiger Lade- und Entladeimpuls skaliert mit Kapazität mal Spannung zum Quadrat. Für die mittlere dynamische Leistungsaufnahme gilt:

Pdynamisch=αCV2f.

Dabei ist C die kapazitive Last, V die Versorgungsspannung, f die Taktfrequenz und α beschreibt die Schaltaktivität gemäß der gewählten Zählkonvention. Manche Konventionen nehmen den Faktor ein Halb in den Aktivitätsfaktor auf. Verhältnisrechnungen funktionieren eindeutig, wenn die Konvention für die Aktivität gleich bleibt.

Bei unveränderter Kapazität und Aktivität ergibt eine Senkung von Spannung und Frequenz um jeweils 20 %:

PneuPalt=0,82×0,8=0,512.

Die neue dynamische Leistungsaufnahme beträgt 51,2 % der ursprünglichen. Eine Senkung allein der Spannung um 10 % ergibt den Faktor 0,81, eine Verringerung der dynamischen Leistungsaufnahme und der Energie pro Übergang um 19 %.

Eine niedrigere Spannung verlangsamt auch das Schalten der Transistoren. Die dynamische Spannungs- und Frequenzskalierung (DVFS) passt Spannung und Frequenz gemeinsam an, damit die Schaltung weiterhin mit der gewählten Geschwindigkeit arbeiten kann.

Leistungsaufnahme und Energie beantworten unterschiedliche Fragen

Leistungsaufnahme ist eine Rate, gemessen in Watt; ein Watt ist ein Joule pro Sekunde. Die Energie für eine Aufgabe ist die mittlere Leistungsaufnahme mal Dauer:

E=PmittelT.
AusführungMittlere LeistungsaufnahmeZeitEnergie
A20 W3 s60 J
B30 W1,5 s45 J

B nimmt während der Ausführung mehr Leistung auf, verbraucht aber weniger Energie, um die Aufgabe abzuschließen. Die Kühlung muss die Wärmeabgabe pro Zeit bewältigen; für Akku und Stromverbrauch summiert sich der Energieverbrauch über die Zeit.

Bei fester Arbeit mit derselben Anzahl von Übergängen sowie gleicher Spannung und Aktivität verteilt eine Senkung allein der Frequenz diese Übergänge über mehr Zeit. Die dynamische Leistungsaufnahme sinkt, der dynamische Energieverbrauch der Aufgabe bleibt aber unverändert. Eine Spannungssenkung verringert auch die Energie jedes Übergangs. Fällt während des längeren Laufs weiterhin statische Leistungsaufnahme an, kann eine Verlangsamung diesen Anteil des Energieverbrauchs der Aufgabe sogar erhöhen.

Leckströme und ungenutzte Hardware

Eigentlich ausgeschaltete Transistoren lassen weiterhin Leckstrom durch. Kleinere Bauelemente und niedrigere Schwellenspannungen machen Leckströme zu einer wichtigen Entwurfsfrage. Power-Gating trennt einen ungenutzten Bereich von der Stromversorgung, um seine statische Leistungsaufnahme zu verringern.

Ein gering ausgelasteter Server kann dennoch einen erheblichen Anteil seiner maximalen Leistungsaufnahme benötigen. Den Verbrauch an die nützliche Arbeit anzupassen, genannt Energieproportionalität, ist ein Entwurfsziel. Eine Aufgabe schnell abzuschließen und in einen stromsparenden Zustand überzugehen, kann Energie sparen, weil das Intervall kürzer wird, in dem Leckströme und andere Hintergrundlasten Leistung aufnehmen. Rechenleistung und Energieeffizienz können sich daher gemeinsam verbessern.

Wichtige Erkenntnisse

  • Die dynamische Leistungsaufnahme skaliert mit Schaltaktivität, Kapazität, Spannung zum Quadrat und Frequenz.
  • Eine Spannungssenkung verringert die Energie pro Übergang und erfordert gewöhnlich eine Frequenzanpassung.
  • Die Energie einer Aufgabe ist die mittlere Leistungsaufnahme mal Dauer; ein Lauf mit höherer Leistungsaufnahme kann weniger Energie verbrauchen.
  • Eine Senkung allein der Frequenz lässt den dynamischen Energieverbrauch einer Aufgabe mit fester Anzahl von Übergängen unverändert.
  • Leckstrom verursacht statische Leistungsaufnahme, und Power-Gating verringert die Leistungsaufnahme ungenutzter Bereiche.
  • Geringe Auslastung garantiert keine geringe Leistungsaufnahme; Energieproportionalität ist ein Entwurfsziel.

5.2 Warum höhere Taktfrequenzen an eine Leistungsgrenze stießen

Über Jahrzehnte brachten kleinere Transistoren sowohl mehr Bauelemente als auch schnelleres Schalten innerhalb eines beherrschbaren Wärmebudgets. Die Power Wall entstand, als die Spannung nicht mehr ausreichend weiter sinken konnte, um dieses Muster aufrechtzuerhalten. Sie veränderte, wie beim Entwurf neue Transistoren in nützliche Rechenleistung umgesetzt wurden.

Der ideale Zusammenhang der Dennard-Skalierung

Im idealen Skalierungsmodell, das Robert Dennard und Kollegen 1974 entwickelten, beschreibe ein Faktor k>1 die Verkleinerung. Abmessungen, Kapazität, Spannung und Verzögerung werden durch diesen Faktor geteilt. Die Frequenz kann mit dem Faktor multipliziert werden. Die dynamische Leistungsaufnahme pro Transistor verändert sich daher um:

1k×1k2×k=1k2.

Auch die Fläche pro Transistor sinkt um das Quadrat des Verkleinerungsfaktors. Dieselbe Fläche kann entsprechend mehr Transistoren aufnehmen, was die niedrigere Leistungsaufnahme pro Bauelement ausgleicht. Die Leistungsdichte, Watt pro Flächeneinheit, bleibt in diesem idealen Modell ungefähr konstant.

Bei einem Faktor von 1,4 sinken Kapazität und Spannung auf etwa 0,71 ihrer ursprünglichen Werte und die Frequenz steigt um den Faktor 1,4. Die Leistungsaufnahme pro Transistor sinkt auf etwa 0,51. Es passen etwa 1,96-mal so viele Transistoren auf die Fläche, sodass die gesamte Leistungsaufnahme auf derselben Fläche ungefähr unverändert bleibt.

Warum die Spannung nicht weiter mit der Größe sank

Transistoren benötigen eine brauchbare Schwellenspannung zum Schalten. Eine zu starke Senkung der Schwellenspannung erhöht den Leckstrom stark. Mitte der 2000er-Jahre konnte die Versorgungsspannung nicht mehr im gleichen Maße wie die Transistorabmessungen sinken. Bei nahezu fester Spannung erhöht eine höhere Frequenz die dynamische Leistungsaufnahme, und mehr aktive Transistoren auf einer Fläche erhöhen die abzuführende Wärme.

Die historischen Zahlen zeigen das Ausmaß der früheren Veränderung: Die Taktfrequenzen von Desktop-Rechnern stiegen von etwa 10 MHz Anfang der 1980er-Jahre auf 3,8 GHz im Jahr 2004, während die Versorgungsspannungen von ungefähr 5 V in Richtung 1 V sanken. Dies sind grobe historische Werte, keine allgemein gültigen Spezifikationen. Etwa 100 W waren für viele gängige Entwürfe jener Zeit bereits ein schwer zu bewältigendes Kühlbudget.

Intels Streichung des geplanten Pentium 4 mit 4 GHz und des Tejas-Entwurfs im Jahr 2004 markierte diesen Übergang zu Entwürfen mit stärkerer Beachtung der Leistungsaufnahme und zu zwei Kernen. Die Taktfrequenzen blieben danach im Bereich einiger Gigahertz, statt dem früheren raschen Anstieg zu folgen. Die Mikroarchitektur verbesserte weiterhin die Rechenleistung einzelner Kerne, aber Frequenzsteigerungen trugen deutlich weniger zum Gewinn bei.

Verwalte das Wärmebudget

Die Thermal Design Power (TDP) ist ein Zielwert für den Wärmeentwurf, anhand dessen eine Kühllösung für festgelegte Betriebsbedingungen dimensioniert wird. Sie ist weder eine momentane Leistungsmessung noch ein allgemeiner Höchstwert. Werden thermische Grenzen erreicht, senkt die thermische Drosselung die Betriebsgeschwindigkeit, um die Wärme zu verringern.

Enthält ein Chip mehr Hardware, als sein Leistungsbudget gleichzeitig mit voller Geschwindigkeit betreiben kann, müssen einige Bereiche verlangsamt oder abgeschaltet werden. Dark Silicon bezeichnet diese Lücke zwischen verfügbaren Transistoren und gleichzeitig nutzbarer aktiver Hardware.

Das mooresche Gesetz und die Dennard-Skalierung beschreiben unterschiedliche Trends: die Transistoranzahl beziehungsweise das Skalierungsverhalten unter Berücksichtigung der Leistungsaufnahme. Das Ende des Letzteren bedeutete nicht, dass die Transistoranzahl nicht weiter wuchs. Das Hindernis für eine unbegrenzte Erhöhung der Frequenz sind hauptsächlich Leistungsaufnahme und Wärme, nicht eine plötzliche Unfähigkeit der Transistoren, noch schneller zu schalten.

Wichtige Erkenntnisse

  • Die ideale Dennard-Skalierung senkte die Spannung zusammen mit der Bauelementgröße und hielt die Leistungsdichte ungefähr konstant.
  • Leckströme und Beschränkungen der Schwellenspannung verhinderten, dass die Spannung weiterhin ideal skaliert wurde.
  • Ohne entsprechende Spannungssenkungen erhöhen schnellere Takte und mehr aktive Bauelemente die Leistungsdichte.
  • Die TDP dient zur Auslegung der Kühlung unter festgelegten Bedingungen; thermische Drosselung reduziert bei thermischen Grenzen die Geschwindigkeit.
  • Dark Silicon beschreibt Hardware, die innerhalb des Leistungsbudgets nicht vollständig gleichzeitig mit voller Geschwindigkeit aktiv sein kann.
  • Moores Trend der Transistoranzahl unterscheidet sich von Dennards Skalierungszusammenhang.

5.3 Nutze mehr Kerne innerhalb eines Leistungsbudgets

Ein Mehrkernprozessor vereint mehrere Kerne auf einem Chip. Jeder Kern führt einen Befehlsstrom aus, während sich die Kerne den Hauptspeicher und oft einige Caches teilen. Gängige Desktop- und Laptop-Entwürfe gingen um 2005–2006 zu zwei Kernen über, da die Erhöhung der Taktfrequenz eines einzelnen Kerns immer mehr Leistung kostete.

Vergleiche zwei langsamere Kerne mit einem schnelleren Kern

Betrachte einen Kern mit 4 GHz und 1,2 V gegenüber zwei Kernen mit 3 GHz und 1,0 V. Halte für diesen Vergleich die Kapazität pro Kern und die Schaltaktivität gleich. Die relative dynamische Leistungsaufnahme beträgt:

2×(1,01,2)2×34≈1,04.

Bei gleicher Arbeit pro Zyklus und genügend unabhängiger Arbeit für beide Kerne verändert sich der ideale Durchsatz um den Faktor:

2×34=1,5.

Das Paar bietet etwa 50 % mehr Durchsatz für etwa 4 % mehr dynamische Leistungsaufnahme. Durch die quadrierte Spannungssenkung ist der zusätzliche Kern in diesem Modell innerhalb des Budgets möglich. Statische Leistungsaufnahme, Grenzen des gemeinsamen Speichers und Koordinationskosten bleiben bei der Beurteilung eines vollständigen Chips wichtig.

Für ein sequenzielles Programm, das nur einen neuen Kern nutzt, sinkt die Rechenleistung bei gleicher Arbeit pro Zyklus auf drei Viertel des ursprünglichen Werts. Es benötigt vier Drittel der ursprünglichen Zeit. Die Zusammenfassung der beiden 3-GHz-Frequenzen zu „6 GHz“ würde dieses Ergebnis verdecken: Keiner der Kerne taktet mit 6 GHz.

Die Software muss die Arbeit bereitstellen

Vor der Power Wall beschleunigten höhere Frequenzen und überlappende Ausführung durch Hardware oft vorhandenen Code ohne größere Änderungen. Zusätzliche Kerne benötigen unabhängige Befehlsströme. Ein Programm profitiert davon, indem es seine Arbeit in nebenläufige Aufgaben aufteilt, die Zuweisungen gleichmäßig verteilt und Ergebnisse koordiniert. Parallele Bibliotheken können diese Struktur bereitstellen, die Arbeit muss aber weiterhin eine brauchbare parallele Form haben.

Befehlsparallelität überlappt Befehle innerhalb eines Stroms mithilfe von Hardware- und Compilertechniken wie Pipelining und Mehrfachausgabe. Threadparallelität führt verschiedene Threads auf mehreren Kernen aus. Dies sind unterschiedliche Quellen der Nebenläufigkeit: Die erste stellt nicht sicher, dass ein Programm jeden Kern auslasten kann.

Unabhängige Serveranfragen liefern auf natürliche Weise viele Ströme, sodass mehrere Kerne den Durchsatz verbessern können, selbst wenn jede Anfrage sequenziell bleibt. Um die Berechnung einer einzelnen Anfrage zu verkürzen, ist Parallelität innerhalb dieser Anfrage nötig. Ihr sequenzieller Anteil setzt dann die Schranke nach Amdahl.

Setze Transistoren für effiziente Arten von Arbeit ein

Mehr Transistoren können größere Caches, mehrere Allzweckkerne oder spezialisierte Hardware ermöglichen. GPUs und domänenspezifische Beschleuniger sind auf Arbeitslasten wie Grafik, maschinelles Lernen und Videokodierung ausgerichtet. Chips können auch schnelle Kerne mit hoher Leistungsaufnahme mit kleineren, effizienteren Kernen kombinieren, wie bei Arm-big.LITTLE-Entwürfen.

Bei einem festen Leistungsbudget vergleicht die Rechenleistung pro Watt die nützliche Rechenleistung mit der Leistungsaufnahme. SPEC CPU 2026 unterstützt neben Leistungskennzahlen auch Energiemessungen. Eine gute Entwurfsentscheidung berücksichtigt die Abschlusszeit der Arbeitslast, ihren Energieverbrauch und die Leistungsaufnahme, die das System dauerhaft bewältigen kann.

Wichtige Erkenntnisse

  • Mehrkernchips führen mehrere Befehlsströme auf getrennten Kernen aus.
  • Eine niedrigere Spannung und Frequenz pro Kern können den Gesamtdurchsatz innerhalb eines ähnlichen Budgets für die dynamische Leistungsaufnahme verbessern.
  • Eine sequenzielle Aufgabe erhält durch ungenutzte Kerne keine zusätzliche Ausführungskapazität.
  • Die Überlappung von Befehlen und Threadparallelität sind unterschiedliche Mechanismen.
  • Unabhängige Anfragen können den Systemdurchsatz verbessern, ohne die Rechenzeit jeder einzelnen Anfrage zu verringern.
  • Spezialisierte Hardware und Hardware mit unterschiedlichen Kernen bieten weitere Möglichkeiten, Transistoren effizient zu nutzen.

Abstraktion und Rechenleistung: Beispiele

5 Interaktive Lektionen

1

Verfolge eine Berechnung vom Code bis zur Hardware

16 Schritte
Verfolge eine Addition durch Systemschichten, Übersetzung und die Schnittstellen, die es verschiedenen Prozessoren ermöglichen, kompatible Software auszuführen.
  1. 1
    EinführungEine Addition, mehrere Sichten

    Die C-Anweisung total = price + tax; beschreibt ein Ergebnis, lässt aber Register, Befehlskodierungen und Schaltungen unerwähnt. Diese Einzelheiten liegen in unterschiedlichen Schichten, von denen jede eine Abstraktion ist, die ihre Arbeit hinter einer Schnittstelle verbirgt.

    Verfolge die Addition nach unten und frage dann, was übereinstimmen muss, damit eine Binärdatei auf einer anderen Maschine läuft: die ISA und ihre Konventionen. So trennst du das Verhalten, auf das Software angewiesen ist, von den Hardwareentscheidungen, die ihre Rechenleistung bestimmen.

  2. 2
    ErklärungEine Schnittstelle verbirgt interne Arbeit

    Eine Abstraktion stellt einen nützlichen Dienst bereit und verbirgt dessen interne Implementierung. Eine Anwendung kann das Lesen einer Datei anfordern, ohne die Elektronik des Speichergeräts zu steuern.

    Ein häufiger Weg nach unten lautet Anwendungen → Systemsoftware → ISA → Mikroarchitektur → digitale Logik → Schaltungen → Transistoren. Jede Sicht macht das System beherrschbar, indem sie eine Grenze bereitstellt, an der eine andere Person beim Entwurf arbeiten kann.

  3. 3
    BeispielWer entscheidet was bei der Addition?

    Für total = price + tax; kann der Compiler Register und einen Additionsbefehl auswählen. Er muss die Gatter des Addierers nicht entwerfen.

    Beim Entwurf der Mikroarchitektur wird die Ausführungshardware ausgewählt; beim Logikentwurf wird ein Addierer aus Gattern aufgebaut; beim Schaltungsentwurf wird das elektrische Verhalten behandelt. Die Einhaltung der Schnittstellen ermöglicht es, jede Entscheidung in die vollständige Berechnung einzufügen, ohne Programmierenden jedes darunterliegende Detail offenzulegen.

  4. 4
    VerbindungOrdne die physischen Komponenten ein

    Die fünf klassischen Komponenten sind Eingabe, Ausgabe, Speicher, Datenpfad und Steuerwerk. Die CPU vereint Datenpfad und Steuerwerk: Der eine führt Operationen auf Daten aus, das andere steuert die Arbeit.

    DRAM dient als Arbeitsspeicher, SRAM stellt kleine schnelle Caches bereit, und beide sind flüchtig. Flash-Speicher und Magnetfestplatten behalten Daten ohne Strom. Ein Betriebssystem verwaltet diese Ressourcen als Software, die auf der CPU läuft.

  5. 5
    HerausforderungErkenne die veränderte Schicht

    Eine Fachkraft ersetzt die Gatter innerhalb eines Addierers. Seine Maschinenbefehle liefern weiterhin alle geforderten Ergebnisse. Hat die Fachkraft notwendigerweise die ISA verändert? Erkläre.

    ---reveal---

    Nein. Die Fachkraft hat die Implementierung der digitalen Logik verändert. Die ISA legt das sichtbare Verhalten der Addition fest; verschiedene Gatteranordnungen können dieselbe Spezifikation erfüllen. Sie können sich dennoch in Verzögerung, Leistungsaufnahme oder Fläche unterscheiden.

  6. 6
    KernaussageMehr Bauelemente legen keine Aufgabendauer fest

    Ein Transistor wirkt als elektrisch gesteuerter Schalter, und ein Chip vereint viele solcher Bauelemente. Das mooresche Gesetz beschreibt den historischen Trend einer ungefähren Verdopplung der Transistoranzahl etwa alle zwei Jahre.

    Zehn Verdopplungen ergeben über etwa 20 Jahre den Faktor 1.024. Dieser Herstellungstrend, dessen Tempo sich verlangsamt hat, legt nicht fest, wie schnell ein einzelnes Programm läuft. Die zusätzlichen Bauelemente benötigen weiterhin eine nützliche Organisation und ein praktikables Leistungsbudget.

  7. 7
    ErklärungErstelle eine ausführbare Datei

    Ein Compiler übersetzt Hochsprachenquellcode in Assemblersprache oder Objektcode. Ein Assembler kodiert Assemblersprache in eine Objektdatei. Ein Linker verbindet Objektdateien und Bibliothekscode und löst Verweise zwischen ihnen auf.

    Der Lader bildet die ausführbare Datei anschließend im Speicher ab und startet sie. Dies sind unterschiedliche Aufgaben: Bei übersetztem Code muss möglicherweise noch ein Bibliotheksverweis aufgelöst werden, bevor daraus die ausführbare Datei für den Lauf entsteht.

  8. 8
    BeispielWähle Register und einen Befehl

    Angenommen, price steht in x6, tax in x7, und das Ergebnis gehört nach x5. Aus der C-Addition kann werden:

    add x5, x6, x7
    

    Das Ziel steht in dieser Assemblersyntax zuerst. Der Befehl liest die beiden Quellregister, addiert ihre Werte und schreibt das Ergebnis in das Zielregister. Der Text ist ein symbolischer Befehl; der Prozessor benötigt seine binäre Kodierung.

  9. 9
    BeispielKodiere dieselbe Addition

    Die Felder der Kodierung im R-Format lauten in der gespeicherten Bitreihenfolge:

    • funct7: 0000000
    • rs2: 00111
    • rs1: 00110
    • funct3: 000
    • rd: 00101
    • opcode: 0110011

    Zusammen kodieren sie 0x007302B3. Die Quellregisterfelder stehen in der Bitanordnung vor dem Zielfeld, obwohl das Ziel im Assemblertext zuerst kommt. Die Feldpositionen ermöglichen es der Hardware, dieselben Bits einheitlich zu interpretieren.

  10. 10
    TippZähle Operationen, nicht Quellcodezeilen

    Selbst wenn Operanden bereits in Registern stehen, benötigt f = (g + h) - (i + j); zwei Additionen und eine Subtraktion. Liegen Daten zunächst im Speicher, kommen Ladebefehle hinzu.

    Auch eine Kurzform in Assemblersprache kann einen Übersetzungsschritt verbergen: Aus mv x5, x6 wird addi x5, x6, 0. CPython interpretiert zwischengeschalteten Bytecode und Java verwendet häufig JIT-Kompilierung, doch auf jedem Weg führt die physische CPU letztlich Maschinenbefehle aus.

  11. 11
    HerausforderungFinde eine nicht aufgelöste Funktion

    Assemblersprache wurde in Objektcode umgewandelt, aber ein Aufruf verweist noch auf eine Funktion in einer anderen Objektdatei. Welcher Schritt behandelt diesen Verweis und welcher spätere Schritt startet das Programm?

    ---reveal---

    Der Linker löst den Verweis auf, während er die Objektdateien verbindet. Der Lader bildet die entstandene ausführbare Datei später im Speicher ab und startet sie. Das Laden ersetzt nicht die Übersetzung und Auflösung von Verweisen in den früheren Erstellungsschritten.

  12. 12
    ErklärungTrenne den Vertrag von seiner Implementierung

    Die ISA legt Befehle, Kodierungen, Register, Adressierung und weiteres sichtbares Maschinenverhalten fest. Die Mikroarchitektur bestimmt interne Pipelines, Ausführungseinheiten, Caches und zugehörige Strukturen.

    Ob eine Multiplikation existiert und welches Ergebnis sie liefert, sind Fragen der ISA. Ob diese Multiplikation einen oder vier Zyklen dauert, ist eine Frage der Implementierung. Zwei kompatible Prozessoren können daher dasselbe Ergebnis mit unterschiedlicher Geschwindigkeit berechnen.

  13. 13
    VerbindungErgänze die binären Konventionen

    Die ABI ergänzt die für Anwendungsprogramme sichtbare ISA um Betriebssystemschnittstellen und Konventionen wie Argumentregister und Datenlayout. Eine Binärdatei benötigt sowohl die von ihr verwendeten Befehlsmerkmale als auch eine kompatible Ausführungsumgebung.

    RISC-V bietet die Basen RV32I und RV64I sowie optionale Erweiterungen, darunter M für Ganzzahlmultiplikation und -division sowie F und D für Gleitkommaoperationen. Eine gemeinsame Basis-ISA allein garantiert nicht jede Erweiterung oder ABI, die ein Programm erwartet.

  14. 14
    HerausforderungBestimme, was Kompatibilität wirklich erfordert

    Eine Binärdatei läuft auf einer neuen Maschine mit anderer Cachegröße, scheitert aber auf einer anderen Maschine, der eine von ihr verwendete Befehlserweiterung fehlt. Was erklärt die unterschiedlichen Ergebnisse?

    ---reveal---

    Die Cachegröße ist eine Implementierungsentscheidung, die die Geschwindigkeit beeinflussen und zugleich das geforderte ISA-Verhalten bewahren kann. Durch die fehlende Erweiterung fehlt die Unterstützung für Befehle, die die Binärdatei benötigt. Die Wiederverwendung einer Binärdatei setzt die relevanten ISA-Merkmale und die ABI voraus; identische Caches gehören nicht zu dieser Anforderung.

  15. 15
    HerausforderungBeurteile die Aussage zum umfangreicheren Befehl

    Ein vorgeschlagener ISA-Befehl ersetzt mehrere ältere Befehle. Sein Entwickler behauptet, dass dies allein ein schnelleres Programm auf der neuen Maschine beweise. Was muss noch verglichen werden?

    ---reveal---

    Vergleiche Befehlsanzahl, durchschnittliche Taktzyklen pro Befehl und Taktperiode für die vollständige Aufgabe. Der neue Befehl kann die Anzahl verringern, während er den Zyklenaufwand erhöht oder eine längere Taktperiode erfordert. Der Vorteil bei der Übersetzung wird erst durch das vollständige Zeitprodukt zu einem Leistungsgewinn.

  16. 16
    ZusammenfassungBetrachte den ganzen Weg

    Ein Quellcodeausdruck wird durch Übersetzung und Linken zu Befehlen und läuft anschließend auf Hardware, die eine ISA implementiert. Die ABI ergänzt die Konventionen, die die Umgebung der ausführbaren Datei benötigt.

    Nutze diesen Weg, um eine Änderung einzuordnen: Codeentscheidungen verändern den Befehlsstrom; Implementierungsentscheidungen verändern, wie er läuft. Bei Kompatibilität geht es um das geforderte Verhalten, während die Rechenleistung von Arbeit und Zeitverhalten in den unteren Schichten abhängt.

2

Wähle und interpretiere eine Leistungsgröße

12 Schritte
Vergleiche die Zeit einer Aufgabe mit dem Systemdurchsatz, lies anschließend CPU-Zeitmessungen und rechne Takteinheiten um.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungBestimme, was Abschluss bedeutet
  2. 2
    ErklärungMiss eine Aufgabe oder einen Strom
  3. 3
    BeispielKehre das Zeitverhältnis um
  4. 4
    HerausforderungKann dieselbe Rate dieselbe Wartezeit bedeuten?
  5. 5
    ErklärungLies Gesamt-, Benutzer- und Systemzeit
  6. 6
    KernaussageParallele CPU-Sekunden addieren sich
  7. 7
    BeispielBilde den Kehrwert in Sekunden
  8. 8
    TippHalte dezimale und binäre Präfixe auseinander
  9. 9
    HerausforderungBestimme eine Taktperiode
  10. 10
    TippBeschreibe einen tatsächlichen Lauf
  11. 11
    HerausforderungSage die Gesamtlaufzeit nach einer CPU-Aufrüstung voraus
  12. 12
    ZusammenfassungOrdne der Aussage die richtige Einheit zu
3

Erstelle und prüfe eine Vorhersage der CPU-Zeit

21 Schritte
Kombiniere Zyklen, Befehlsmix und Taktfrequenz und prüfe dann, ob Aussagen zur Rechenleistung abgeschlossene Arbeit beschreiben.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungDrei Faktoren ergeben eine Ausführungszeit
  2. 2
    ErklärungBeginne mit dem Zyklenbudget
  3. 3
    BeispielBestimme die Zyklenanzahl vor der Entwurfsänderung
  4. 4
    VerbindungDer Takt kann die benötigte Logik nicht überholen
  5. 5
    HerausforderungReicht die Takterhöhung aus?
  6. 6
    ErklärungDer CPI-Wert ist ein nach Ausführung gewichtetes Mittel
  7. 7
    BeispielBerechne einen Befehlsmix
  8. 8
    BeispielEine längere Folge kann insgesamt weniger Zyklen benötigen
  9. 9
    KernaussageEin Durchschnitt unter eins ist möglich
  10. 10
    HerausforderungBerechne Zyklen und die Rate als Kehrwert
  11. 11
    ErklärungRechne Befehle bis zur Zeit um
  12. 12
    BeispielVergleiche zwei gleiche Befehlsanzahlen
  13. 13
    VerbindungFinde den Ansatzpunkt im Entwurf
  14. 14
    HerausforderungBestimme einen gemessenen CPI-Wert
  15. 15
    ErklärungWähle die Benchmark-Kennzahl
  16. 16
    BeispielMultipliziere Verhältniszahlen und ziehe dann die Wurzel
  17. 17
    HerausforderungLies eine Durchsatzverhältniszahl
  18. 18
    BeispielPrüfe, was ein hoher MIPS-Wert belohnt
  19. 19
    TippLies Spitzenwerte als Leistungsfähigkeit
  20. 20
    HerausforderungFühre Compiler- und Hardwareänderungen zusammen
  21. 21
    ZusammenfassungPrüfe die vollständige Aussage
4

Finde heraus, welcher Teil einen Speedup begrenzt

15 Schritte
Nutze Zeitbudgets, um eine lokale Verbesserung, einen angestrebten Speedup und parallele Ausführung auf mehr Kernen zu beurteilen.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungBehalte die unveränderte Arbeit im Budget
  2. 2
    ErklärungTeile die ursprüngliche Zeit vor der Beschleunigung auf
  3. 3
    BeispielBeschleunige den Gleitkommateil
  4. 4
    BeispielRechne von der Zielzeit aus rückwärts
  5. 5
    KernaussageUntersuche den aufwendigen Teil mit Profiling
  6. 6
    HerausforderungWähle die bessere Verbesserung
  7. 7
    ErklärungNutze Kerne nur für parallele Zeit
  8. 8
    BeispielErgänze viele Kerne für eine zu 95 % parallele Aufgabe
  9. 9
    ErklärungTeile den Speedup durch die Kernanzahl, um die Effizienz zu bestimmen
  10. 10
    BeispielDer Abschluss wartet auf den am stärksten ausgelasteten Kern
  11. 11
    HerausforderungBestimme die sequenzielle Beschränkung
  12. 12
    VerbindungÄndere die Frage, wenn die Arbeit wächst
  13. 13
    HerausforderungPrüfe, ob sich zwei Aussagen widersprechen
  14. 14
    HerausforderungBerücksichtige CPU-Arbeit und Warten auf Dateien
  15. 15
    ZusammenfassungBestimme zuerst die verbleibende Zeit
5

Erkläre die Power Wall und die Antwort durch Mehrkernprozessoren

19 Schritte
Berechne dynamische Leistungsaufnahme und Energie, verfolge das Ende der idealen Skalierung und prüfe den Nutzen langsamerer Kerne.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungRechenleistung hat ein Wärmebudget
  2. 2
    ErklärungBerücksichtige Schalten und Leckstrom getrennt
  3. 3
    BeispielBerücksichtige die Spannung zum Quadrat
  4. 4
    BeispielVergleiche den Energieverbrauch einer vollständigen Aufgabe
  5. 5
    KernaussageEine niedrigere Frequenz beseitigt keine Übergänge
  6. 6
    HerausforderungHalte die statische Komponente unverändert
  7. 7
    ErklärungDie ideale Verkleinerung hielt die Leistungsdichte stabil
  8. 8
    BeispielPrüfe eine ideale Technologiegeneration
  9. 9
    ErklärungDie Spannung konnte der Größe nicht weiter folgen
  10. 10
    VerbindungVerstehe thermische Grenzen als Betriebsbeschränkungen
  11. 11
    HerausforderungUntersuche das Scheitern der Skalierung
  12. 12
    ErklärungMehr Kerne stellen getrennte Ströme bereit
  13. 13
    BeispielBerechne die dynamische Leistungsaufnahme zweier langsamerer Kerne
  14. 14
    BeispielFrage, ob die Arbeitslast beide Kerne nutzen kann
  15. 15
    VerbindungUnterscheide Befehls- und Threadüberlappung
  16. 16
    VerbindungNutze spezialisierte Hardware für geeignete Arbeit
  17. 17
    HerausforderungWähle einen Entwurf für unabhängige Arbeit
  18. 18
    HerausforderungVerbinde Verlangsamung, Energie und Abschlusszeit
  19. 19
    ZusammenfassungStimme den Entwurf auf seine nützliche Arbeit ab

Abstraktion und Rechenleistung: Übungsaufgaben

50 Übungsfragen in 5 Sets

Set 1: Verbinde die Schichten und grundlegende Leistungsgrößen10 Übungsfragen

Frage 1 von 10

Ein Entwickler behandelt das Lesen einer Datei als Betriebssystemdienst, ohne die Elektronik des Speichergeräts zu steuern. Welche Idee ermöglicht diese Trennung?
  1. Kompilierung in einen neuen Befehlssatz
  2. Ergänzung des Hauptspeichers um physischen Speicher
  3. Abstraktion durch eine definierte Schnittstelle
  4. Verbindung von Datenpfad und Steuerlogik
Antwort zeigenAntwort ausblenden
Antwort: C
Abstraktion stellt den benötigten Dienst bereit und verbirgt seine Implementierung. Die Betriebssystemschnittstelle ermöglicht es dem Programm, das Lesen einer Datei anzufordern, ohne Geräteschaltungen zu verwalten. Kompilierung übersetzt Code, erklärt aber nicht, warum ein Dienst seine internen Einzelheiten verbergen kann.

Frage 2 von 10

Eine Objektdatei ruft eine Funktion auf, die in einer anderen Objektdatei definiert ist. Welches Werkzeug löst diesen Verweis beim Erstellen der ausführbaren Datei auf?
  1. Der Linker
  2. Der Compiler
  3. Der Assembler
  4. Der Lader
Antwort zeigenAntwort ausblenden
Antwort: A
Der Linker verbindet Objektdateien und löst Verweise zwischen ihrem Code und ihren Daten auf. Ein Assembler kann Maschinencode erzeugen und dabei einen externen Funktionsverweis unaufgelöst lassen. Der Lader startet die entstandene ausführbare Datei; er ersetzt nicht den hier beschriebenen Schritt des Linkens.

Frage 3 von 10

Ein Dienst schließt 1.800 Aufträge in 90 s ab. Wie groß ist sein Durchsatz?
  1. 30 Aufträge/s
  2. 0,05 Aufträge/s
  3. 1.710 Aufträge/s
  4. 20 Aufträge/s
Antwort zeigenAntwort ausblenden
Antwort: D
Der Durchsatz ist die abgeschlossene Arbeit geteilt durch das Zeitintervall, also ergeben 1.800 geteilt durch 90 insgesamt 20 Aufträge pro Sekunde. Die Division in umgekehrter Richtung ergibt 0,05 Sekunden pro Auftrag, eine Zeit pro Abschluss. Dieser Kehrwert ist kein Durchsatz in Aufträgen pro Sekunde.

Frage 4 von 10

Dieselbe Umwandlung dauert auf Maschine L 18 s und auf Maschine M 12 s. Wie verhalten sich die Rechenleistung und Ausführungszeit von M zu denen von L?
  1. 1,5-fache Rechenleistung; 50,0 % weniger Zeit
  2. 1,5-fache Rechenleistung; 33,3 % weniger Zeit
  3. 0,67-fache Rechenleistung; 33,3 % weniger Zeit
  4. 1,33-fache Rechenleistung; 25,0 % weniger Zeit
Antwort zeigenAntwort ausblenden
Antwort: B
Die Rechenleistung ist der Kehrwert der Zeit, sodass M die 18 durch 12 geteilte, also 1,5-fache Rechenleistung von L hat. Die Zeitverkürzung beträgt 6 geteilt durch die ursprünglichen 18, also etwa 33,3 %. Eine Steigerung der Rechenleistung um 50 % bedeutet keine Zeitverkürzung um 50 %, weil die beiden Prozentangaben unterschiedliche Nenner haben.

Frage 5 von 10

Eine Zeitmessung mit einem einzelnen Thread meldet „real 4.4 s, user 2.7 s, sys 0.5 s.“ Welche CPU-Zeit wird dieser Aufgabe zugerechnet?
  1. 4,4 s
  2. 3,2 s
  3. 2,7 s
  4. 1,2 s
Antwort zeigenAntwort ausblenden
Antwort: B
Die CPU-Zeit umfasst sowohl die Benutzerausführung als auch die Betriebssystemausführung im Auftrag der Aufgabe. Das ergibt 2,7 plus 0,5, also 3,2 s. Wer nur 2,7 s nimmt, lässt die System-CPU-Zeit aus. Die Gesamtlaufzeit von 4,4 s umfasst auch Zeitabschnitte, in denen die Aufgabe den Prozessor nicht nutzt.

Frage 6 von 10

Eine Aufgabe benötigt 7,5 Milliarden Zyklen bei konstanten 2,5 GHz. Wie groß ist ihre CPU-Zeit?
  1. 3,0 s
  2. 0,3 s
  3. 5,0 s
  4. 18,75 s
Antwort zeigenAntwort ausblenden
Antwort: A
Dividiere 7,5 Milliarden Zyklen durch 2,5 Milliarden Zyklen pro Sekunde, um 3,0 s zu erhalten. Die Multiplikation der beiden Zahlen ergibt 18,75, aber keine Dauer. Die Zyklenanzahl muss mit Sekunden pro Zyklus multipliziert oder durch Zyklen pro Sekunde dividiert werden.

Frage 7 von 10

Ein Programm führt 70 % ALU-Befehle mit jeweils 1 Zyklus und 30 % Speicherbefehle mit jeweils 5 Zyklen aus. Wie groß ist sein durchschnittlicher CPI-Wert?
  1. 3,0
  2. 1,8
  3. 2,5
  4. 2,2
Antwort zeigenAntwort ausblenden
Antwort: D
Gewichte jeden Zyklenaufwand mit seinem Befehlsanteil: 0,70 mal 1 plus 0,30 mal 5 ergibt 2,2 Zyklen pro Befehl. Das einfache Mittel der Zyklenzahlen der Klassen ist 3,0, behandelt aber beide Klassen als gleich häufig. Ihre ausgeführten Anzahlen sind ungleich.

Frage 8 von 10

Eine Aufgabe führt ursprünglich 1,5 Milliarden Befehle bei CPI 2,0 und 3 GHz aus. Neuer Code führt 1,2 Milliarden Befehle bei CPI 2,8 aus. Bei welcher konstanten Taktfrequenz wäre der neue Code 20 % früher fertig als der ursprüngliche?
  1. 3,36 GHz
  2. 3,5 GHz
  3. 4,2 GHz
  4. 4,0 GHz
Antwort zeigenAntwort ausblenden
Antwort: C
Die ursprüngliche Zeit beträgt 1,0 s, die Zielzeit also 0,8 s. Der neue Code benötigt 1,2 mal 2,8, also 3,36 Milliarden Zyklen; geteilt durch 0,8 s ergibt das 4,2 GHz. Eine Frequenz von 3,36 GHz stellt nur die ursprüngliche Zeit von 1,0 s wieder her und verfehlt die verlangte Verbesserung.

Frage 9 von 10

Eine Aufgabe von 100 s verbringt 40 s in einer Routine. Die Routine wird viermal so schnell und alle übrigen Arbeiten bleiben unverändert. Wie groß ist die neue Aufgabendauer?
  1. 25 s
  2. 85 s
  3. 70 s
  4. 60 s
Antwort zeigenAntwort ausblenden
Antwort: C
Die 40 s der Routine werden zu 10 s, während die nicht betroffene Arbeit weiterhin 60 s dauert. Das ergibt insgesamt 70 s. Würdest du die gesamten 100 s durch vier teilen, würdest du den unveränderten Anteil fälschlich beschleunigen. Ein lokaler Speedup gilt nur für die ursprüngliche Zeit in der verbesserten Routine.

Frage 10 von 10

Ein CMOS-Entwurf senkt die Spannung auf 90 % und die Frequenz auf 80 % ihrer vorherigen Werte, während Kapazität und Aktivität unverändert bleiben. Welcher Anteil der ursprünglichen dynamischen Leistungsaufnahme bleibt?
  1. 0,648
  2. 0,720
  3. 0,810
  4. 0,576
Antwort zeigenAntwort ausblenden
Antwort: A
Die dynamische Leistungsaufnahme skaliert mit der Spannung zum Quadrat und der Frequenz, das Verhältnis ist also 0,90 zum Quadrat mal 0,80, also 0,648. Die direkte Multiplikation von Spannung und Frequenz ergibt 0,720 und übersieht die quadratische Wirkung der Spannung. Das Ergebnis betrifft die dynamische Leistungsaufnahme; ein Wert für die statische Leistungsaufnahme ist nicht angegeben.
Set 2: Interpretiere Arbeitslasten, Befehlsmixe und Entwurfsänderungen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Eine Entwicklerin ändert die Gatter innerhalb eines Addierers und lässt dabei jedes für die ISA sichtbare Ergebnis unverändert. Zu welcher Schicht gehört die Änderung auf Gatterebene?
  1. Anwendungen
  2. Digitale Logik
  3. Systemsoftware
  4. ABI-Konventionen
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Ein Compiler hat bereits Assemblertext erzeugt, und das Programm benötigt noch eine externe Bibliotheksfunktion. Was sind die nächsten Hauptschritte vor Beginn der Ausführung?
  1. Linken, Kompilieren, dann Laden
  2. Laden, Assemblieren, dann Linken
  3. Assemblieren, Laden, dann Linken
  4. Assemblieren, Linken, dann Laden
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Lauf nutzt vier Kerne und meldet 2,0 s Gesamtlaufzeit bei zusammen 6,8 s Benutzer- und System-CPU-Zeit. Was zeigt diese Meldung?
  1. CPU-Arbeit im Umfang von durchschnittlich 3,4 Kernen
  2. Ein physikalisch unmögliches Zeitmessergebnis
  3. Genau 4,8 s Wartezeit auf den Datenspeicher
  4. Eine Taktfrequenz von 3,4 GHz pro aktivem Kern
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein Prozessor schließt während eines Laufs durchschnittlich 2 Befehle pro Zyklus ab. Wie groß ist der zugehörige CPI-Wert?
  1. 2,0
  2. 1,0
  3. 0,5
  4. 0,2
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Auf einem Prozessor mit fester Frequenz benötigen ALU-Befehle 1 Zyklus und Speicherbefehle 4. Build U führt 600 Millionen ALU- und 200 Millionen Speicherbefehle aus; Build V führt 900 Millionen ALU- und 100 Millionen Speicherbefehle aus. Welcher Build wird zuerst fertig und welchen Speedup erreicht er?
  1. V; etwa 1,077-mal so schnell
  2. U; etwa 1,250-mal so schnell
  3. V; etwa 1,400-mal so schnell
  4. U; etwa 1,077-mal so schnell
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Drei Programme liefern normierte Geschwindigkeitsverhältniszahlen von 1, 4 und 16. Welches geometrische Mittel fasst sie zusammen?
  1. 7
  2. 8
  3. 4
  4. 16
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Eine feste Aufgabe dauert auf einem Kern 160 s, darunter 40 s, die sequenziell bleiben müssen. Auf acht Kernen wird ihre parallele Arbeit gleichmäßig aufgeteilt, und die Koordination fügt nach der Arbeit 5 s hinzu. Wie groß sind der Gesamt-Speedup und die parallele Effizienz?
  1. Etwa 2,91 und 36,4 %
  2. Etwa 3,20 und 40,0 %
  3. Etwa 2,67 und 66,7 %
  4. Etwa 2,67 und 33,3 %
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Welche Veränderung durchbrach das ideale Skalierungsmuster, das höhere Taktfrequenzen bei ungefähr konstanter Leistungsdichte ermöglicht hatte?
  1. Die Transistoranzahl wuchs auf keinem Chip mehr
  2. Die Spannung sank nicht mehr im gleichen Maß wie die Bauelementgröße
  3. Die Taktperioden wurden unabhängig von der Schaltungsverzögerung
  4. Die Befehlsanzahlen wurden durch Quellcodezeilen festgelegt
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Auf einem Chip wird ein Kern mit 3 GHz durch vier Kerne mit 3 GHz ersetzt, die pro Kern dieselbe Rechenleistung haben. Eine vollständig sequenzielle Aufgabe hatte keine Wartezeit in einer Warteschlange. Wie wirkt sich die Änderung der Kernanzahl auf die Rechenzeit dieser Aufgabe aus?
  1. Sie wird auf ein Viertel verkürzt
  2. Sie bleibt auf einem Kern gleich
  3. Sie wird auf drei Viertel verkürzt
  4. Sie wird viermal so lang
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein Prozessor schließt 1,8 Milliarden Befehle in 1,2 CPU-Sekunden ab, und Zähler erfassen 3,6 Milliarden Zyklen. Ein Bericht gibt den Prozessor mit „3,6 GHz“ an. Welcher CPI-Wert und welche effektive mittlere Taktfrequenz beschreiben diesen Lauf?
  1. CPI 2,0 und 3,0 GHz
  2. CPI 1,5 und 3,6 GHz
  3. CPI 2,4 und 3,6 GHz
  4. CPI 2,0 und 4,32 GHz
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 3: Finde Engpässe und vergleiche vollständige Entwürfe10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Zwei Prozessoren unterstützen dieselbe für Anwendungsprogramme sichtbare ISA und dieselben Erweiterungen, aber ihre Betriebssysteme verwenden unterschiedliche Systemaufruf- und Aufrufkonventionen. Warum läuft eine Binärdatei für die eine Umgebung nicht garantiert unverändert in der anderen?
  1. Ihre ABIs unterscheiden sich trotz gemeinsamer ISA
  2. Ihre Cachegrößen müssen identisch sein
  3. Ihre ISAs müssen unterschiedliche Additionskodierungen verwenden
  4. Ihre Taktfrequenzen müssen für Kompatibilität übereinstimmen
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Ein unveränderter Teil einer Aufgabe benötigt 25 % ihrer ursprünglichen Zeit. Welchem Gesamt-Speedup nähert sich die Beschleunigung allein des restlichen Teils, wenn dessen lokaler Speedup unbegrenzt wächst?
  1. 3
  2. 2,5
  3. 4
  4. 5
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Entwurf benötigt für ein Programm 15 % mehr Zyklen, erhöht aber seine Taktfrequenz um 25 %. Welchen Anteil der alten CPU-Zeit beträgt die neue CPU-Zeit?
  1. 0,80
  2. 1,10
  3. 1,4375
  4. 0,92
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Die Taktperiode wird von 625 ps auf 500 ps verkürzt. Wie groß sind die neue Frequenz und ihre prozentuale Steigerung?
  1. 2,0 GHz; 20 % höher
  2. 2,0 GHz; 25 % höher
  3. 1,6 GHz; 25 % höher
  4. 1,6 GHz; 20 % höher
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Für dieselbe Aufgabe auf einem Prozessor meldet Build H 2.000 MIPS und 0,9 CPU-Sekunden; Build J meldet 1.500 MIPS und 0,8 CPU-Sekunden. Was zeigt der Vergleich?
  1. H führt 33 % mehr Befehle aus und ist schneller
  2. H führt 50 % mehr Befehle aus und ist langsamer
  3. H führt 50 % mehr Befehle aus und ist schneller
  4. H führt 33 % mehr Befehle aus und ist langsamer
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Eine Aufgabe von 200 s verbringt 120 s in einer Routine, die beschleunigt werden kann. Ein Entwickler verspricht einen dreifachen Gesamt-Speedup, indem er nur diese Routine verändert. Wie ist das Versprechen zu beurteilen?
  1. Machbar; ein dreifacher lokaler Speedup erreicht das Ziel
  2. Machbar; ein sechsfacher lokaler Speedup erreicht das Ziel
  3. Nur möglich, wenn die Zeit der Routine genau null erreicht
  4. Unmöglich; die unveränderten 80 s überschreiten die Zielzeit
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Ein Programm erreicht auf 10 Kernen einen Speedup von 6. Wie groß ist seine parallele Effizienz?
  1. 60%
  2. 40%
  3. 67%
  4. 6%
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Bei fester Spannung dauert eine Aufgabe 2 s mit 40 W dynamischer und 10 W statischer Leistungsaufnahme. Eine Halbierung der Frequenz verdoppelt ihre Dauer und halbiert die dynamische Leistungsaufnahme, während die statische bei 10 W bleibt. Wie groß ist der neue gesamte Energieverbrauch der Aufgabe?
  1. 80 J, also 20 J weniger
  2. 100 J, also unverändert
  3. 120 J, also 20 J mehr
  4. 200 J, also 100 J mehr
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Wie verändern sich bei einer idealen Dennard-Verkleinerung um den Faktor 2 die Leistungsaufnahme pro Transistor und die Transistordichte?
  1. Leistungsaufnahme auf die Hälfte; Dichte auf das Zweifache
  2. Leistungsaufnahme auf ein Viertel; Dichte auf das Vierfache
  3. Leistungsaufnahme unverändert; Dichte auf das Vierfache
  4. Leistungsaufnahme auf ein Achtel; Dichte auf das Vierfache
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein Kern mit 4 GHz und 1,2 V wird durch zwei Kerne mit 3 GHz und 1,0 V ersetzt, bei gleicher Kapazität und Aktivität pro Kern sowie gleicher Arbeit pro Zyklus. Eine Arbeitslast hat auf dem ursprünglichen Kern einen parallelisierbaren Anteil von 80 %. Wie verhält sich ihre neue Abschlusszeit ohne zusätzlichen Aufwand zur alten Zeit?
  1. 0,67-mal so lang
  2. 0,75-mal so lang
  3. 0,80-mal so lang
  4. 1,33-mal so lang
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 4: Untersuche Aussagen und bestimme fehlende Größen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Eine Anwendung liefert auf zwei kompatiblen Rechnern dieselben Ergebnisse, aber speicherintensive Arbeit ist auf einem viel langsamer. Wie kann Abstraktion beide Beobachtungen erklären?
  1. Schnittstellen verlangen bei gleichen Ergebnissen identische Hardware
  2. Unterschiedliche Zeiten zeigen, dass die Anwendung eine andere ISA nutzen muss
  3. Die Speicherleistung wird durch die Hochsprachenspezifikation festgelegt
  4. Schnittstellen bewahren das geforderte Verhalten, während Entwürfe unterer Schichten die Zeit beeinflussen
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

In RISC-V-Assemblersprache kann mv x9, x10 als addi x9, x10, 0 assembliert werden. Was für ein Assemblerkonstrukt ist mv hier?
  1. Eine Systemaufrufschnittstelle
  2. Ein Pseudobefehl
  3. Ein binäres Dateiformat
  4. Ein Hardware-Taktzyklus
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Eine Aufgabe mit einem einzelnen Thread meldet 9 s Gesamtlaufzeit, 5 s Benutzerzeit und 1 s Systemzeit. Eine Aufrüstung verdoppelt die CPU-Geschwindigkeit; eine andere halbiert die Zeit außerhalb der CPU. Alle anderen Zeiten bleiben fest. Welche Gesamtlaufzeit ergibt sich durch beide Aufrüstungen?
  1. 4,5 s
  2. 3,0 s
  3. 4,0 s
  4. 6,0 s
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein Prozessor mit 2,4 GHz führt eine Aufgabe in 5 s aus. Ein Ersatzprozessor benötigt 30 % mehr Zyklen und hat eine Taktperiode von 250 ps. Wie groß sind seine CPU-Zeit und der Speedup der Aufgabe?
  1. 3,0 s und etwa 1,67
  2. 6,5 s und etwa 0,77
  3. 3,9 s und etwa 1,28
  4. 3,9 s und etwa 0,78
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Ein Programm verwendet die RISC-V-M-Erweiterung und eine bestimmte Betriebssystem-ABI. Eine neue Maschine unterstützt dieselben ABI-Konventionen, aber nur die Basis-ISA RV64I. Welche zusätzliche native Unterstützung benötigt die Binärdatei?
  1. Eine identische Cachekapazität der ersten Stufe
  2. Unterstützung für ihre M-Erweiterungsbefehle
  3. Eine Taktfrequenz wie die der ursprünglichen Maschine
  4. Einen Compiler, der genau so viele Befehle erzeugt
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Zwei Programme benötigen auf X 8 s und 32 s und auf Y 16 s und 18 s. Wie verhält sich X zu Y, wenn du das geometrische Mittel ihrer Geschwindigkeitsverhältniszahlen pro Programm verwendest?
  1. X ist etwa 1,281-mal so schnell
  2. Y ist etwa 1,061-mal so schnell
  3. X ist etwa 1,061-mal so schnell
  4. Y ist etwa 1,176-mal so schnell
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Ein Durchsatzbenchmark verwendet eine Referenzzeit von 240 s und schließt sechs Instanzen in einem gemessenen Intervall von 120 s ab. Wie groß ist die Durchsatzverhältniszahl?
  1. 12
  2. 2
  3. 6
  4. 3
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Eine feste Aufgabe enthält 10 % sequenzielle Arbeit. Ein Entwickler möchte auf 16 Kernen eine ideale parallele Effizienz von mindestens 50 % erreichen. Kann diese Aufgabe das Ziel erreichen, ohne ihren sequenziellen Anteil zu verändern?
  1. Ja; die ideale Effizienz beträgt etwa 64 %
  2. Ja; die ideale Effizienz beträgt etwa 53 %
  3. Nein; die ideale Effizienz beträgt nur 10 %
  4. Nein; die ideale Effizienz beträgt nur 40 %
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Lauf A benötigt durchschnittlich 24 W über 2,5 s. Lauf B benötigt für dieselbe Aufgabe 36 W über 1,5 s. Welcher Lauf verbraucht weniger Energie und um wie viel?
  1. A verbraucht 12 J weniger
  2. B verbraucht 24 J weniger
  3. B verbraucht 6 J weniger
  4. A verbraucht 6 J weniger
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Eine Technologieänderung halbiert die Kapazität und vervierfacht die Dichte aktiver Bauelemente, aber die Spannung kann nicht sinken. Beim Entwurf werden Frequenz und Aktivität pro Bauelement konstant gehalten. Was geschieht mit der dynamischen Leistungsaufnahme pro Fläche?
  1. Sie bleibt konstant
  2. Sie verdoppelt sich
  3. Sie sinkt auf die Hälfte
  4. Sie vervierfacht sich
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 5: Verbinde Zeit, Parallelität und Leistungsbudgets10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Welche Schnittstelle legt fest, wie eine kompilierte Funktion Argumente in Registern übergibt?
  1. Die Befehlssatzarchitektur
  2. Die Binärschnittstelle
  3. Die Mikroarchitektur des Prozessors
  4. Die Speicherbelegung des Laders
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Ein Dienst hat zunächst einen Kern; jede sequenzielle Anfrage benötigt 0,20 s Rechenzeit. Er wechselt zu vier Kernen, die jeweils 0,25 s pro Anfrage benötigen. Was geschieht bei unabhängigen Anfragen und ohne weitere Beschränkungen mit dem maximalen Durchsatz und der Rechenzeit jeder Anfrage?
  1. Durchsatz steigt auf das 4-Fache; Rechenzeit sinkt um 75 %
  2. Durchsatz steigt auf das 3,2-Fache; Rechenzeit sinkt um 20 %
  3. Durchsatz steigt auf das 3,2-Fache; Rechenzeit steigt um 25 %
  4. Durchsatz steigt auf das 5-Fache; Rechenzeit steigt um 25 %
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Fünf kontrollierte Messungen der Gesamtlaufzeit ergeben 1,8 s; 1,9 s; 7,2 s; 2,0 s und 2,1 s. Welche Medianzeit repräsentiert diese Läufe?
  1. 2,0 s
  2. 1,9 s
  3. 3,0 s
  4. 2,1 s
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Bei fester Taktfrequenz führt ein Programm 75 % ALU-Befehle mit 1 Zyklus und 25 % Speicherbefehle mit 5 Zyklen aus. Eine Optimierung lässt die Anzahlen unverändert und halbiert nur den Zyklenaufwand der Speicherklasse. Welcher Gesamt-Speedup der CPU ergibt sich?
  1. Etwa 1,143
  2. Etwa 1,600
  3. Etwa 1,818
  4. Etwa 1,455
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Ein neuer Compiler senkt die Befehlsanzahl um 20 % und erhöht den CPI-Wert um 25 %. Der Takt der neuen Hardware ist um 10 % schneller. Wie groß ist der endgültige Speedup für dieselbe Aufgabe?
  1. 1,00
  2. 1,125
  3. 1,10
  4. 1,375
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Ein Chip verdoppelt die Anzahl seiner identischen aktiven Kerne und senkt die Frequenz pro Kern auf 75 % des alten Werts. Welches größte Spannungsverhältnis hält die gesamte dynamische Leistungsaufnahme bei oder unter ihrem alten Wert, wenn Kapazität und Aktivität pro Kern unverändert bleiben?
  1. Etwa 0,667
  2. Etwa 0,866
  3. Etwa 0,943
  4. Etwa 0,816
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Eine Aufgabe von 180 s enthält 45 s, die eine Verbesserung nicht verändern kann. Welcher lokale Speedup der restlichen Arbeit ist nötig, um einen dreifachen Gesamt-Speedup zu erreichen?
  1. 9
  2. 3
  3. 6
  4. 12
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Eine skalierte Arbeitslast auf 20 Kernen verbringt 10 % ihrer gemessenen Zeit im parallelen Lauf mit sequenzieller Arbeit. Welcher skalierte Speedup ergibt sich nach Gustafsons Modell, und kann dieser Wert als Amdahls Speedup für eine unveränderte Aufgabe auf einem Kern mit 10 % sequenziellem Anteil verwendet werden?
  1. 10,0; ja, beide Modelle verwenden denselben Anteil
  2. 18,1; nein, Arbeitslast und Grundlage des Anteils unterscheiden sich
  3. 18,1; ja, beide Modelle beschreiben feste Arbeit
  4. 6,90; nein, Arbeitslast und Grundlage des Anteils unterscheiden sich
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Ein Entwurf hat 50 W dynamische und 20 W statische Leistungsaufnahme. Die Frequenz bleibt unverändert, die Spannung sinkt um 10 % und die statische Leistungsaufnahme bleibt bei 20 W. Wie groß ist die neue Gesamtleistungsaufnahme?
  1. 56,7 W
  2. 63,0 W
  3. 40,5 W
  4. 60,5 W
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein Medienserver ersetzt einen CPU-Kern durch vier Kerne, die Umwandlungen jeweils langsamer ausführen. Sein unverändertes Umwandlungsprogramm verwendet einen CPU-Thread. Warum können viele unabhängige Umwandlungen mit einer höheren Rate abgeschlossen werden, während jede Umwandlung länger dauert?
  1. Mehr Aufträge laufen gleichzeitig, während jeder einen langsameren Kern nutzt.
  2. Jeder Auftrag vereint vier langsamere Kerne zu einem schnelleren Befehlsstrom.
  3. Die neuen Kerne verkürzen die CPU-Zeit jedes Auftrags durch Wegfall sequenzieller Arbeit.
  4. Die Taktfrequenzen der vier Kerne addieren sich für jede Umwandlung.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe

Schlüsselbegriffe

93 Schlüsselbegriffe, jeweils mit Definition

A

Abstraktion
Eine Abstraktion ist eine vereinfachte Sicht, die nützliches Verhalten zeigt und Einzelheiten darüber verbirgt, wie eine Komponente es umsetzt.
Eine Dateischnittstelle des Betriebssystems ist eine Abstraktion, mit der eine Anwendung Daten anfordern kann, ohne Festplattenschaltungen zu steuern.
Abwärtskompatibilität
Abwärtskompatibilität ist die Unterstützung von Software, die für eine frühere Schnittstelle oder Plattform erstellt wurde, innerhalb der unterstützten Umgebung des neueren Systems.
Abwärtskompatibilität kann alte Binärdateien bewahren, während sich interne Prozessorentwürfe erheblich verändern.
Aktivitätsfaktor
Ein Aktivitätsfaktor drückt aus, wie viel Kapazität pro Taktzyklus gemäß der in einem Leistungsmodell verwendeten Zählkonvention geschaltet wird.
Ein Verhältnis dynamischer Leistungsaufnahmen bei festem Aktivitätsfaktor setzt voraus, dass die Schaltaktivität vergleichbar bleibt.
Amdahlsches Gesetz
Das amdahlsche Gesetz setzt den Gesamt-Speedup mit dem verbesserten Anteil der ursprünglichen Zeit und dessen lokalem Speedup in Beziehung, wobei die nicht betroffene Zeit unverändert bleibt.
Das amdahlsche Gesetz erklärt, warum die Verdreifachung der Geschwindigkeit einer Routine für die ganze Aufgabe weniger als eine dreifache Verbesserung ergibt.
Antwortzeit
Die Antwortzeit ist die Dauer vom Beginn einer Aufgabe bis zu ihrem Abschluss, einschließlich relevanter Berechnungen, Ein- und Ausgabe sowie Wartezeiten.
Wer auf ein Umwandlungsergebnis wartet, interessiert sich für die Antwortzeit, selbst wenn der Dienst viele andere Aufträge abschließt.
Assembler
Ein Assembler übersetzt symbolische Assemblersprache in Maschinenbefehlskodierungen und erzeugt dabei gewöhnlich eine Objektdatei.
Der Assembler wandelt add x5, x6, x7 in seine binäre Kodierung um und erweitert unterstützte Pseudobefehle.
Assemblersprache
Assemblersprache ist eine symbolische Textform von Maschinenbefehlen mit für Menschen lesbaren Register- und Operationsnamen.
Die Assemblerzeile add x5, x6, x7 nennt ein Zielregister und zwei Quellregister.
Aufrufkonvention
Eine Aufrufkonvention ist eine ABI-Regel für die Kommunikation zwischen kompilierten Funktionen, darunter die Festlegung, wo Argumente und Ergebnisse übergeben werden.
Die Aufrufkonvention legt für getrennt kompilierte Funktionen fest, welche Register ihre eingehenden Argumente enthalten.
Ausführbare Datei
Eine ausführbare Datei ist eine für eine bestimmte Maschinen- und Betriebssystemumgebung vorbereitete Programmdatei, die der Lader starten kann.
Der Linker erzeugt eine ausführbare Datei, nachdem er Objektcode verbunden und die benötigten Verweise aufgelöst hat.

B

Befehle pro Taktzyklus
Befehle pro Taktzyklus ist die Anzahl ausgeführter Befehle geteilt durch die CPU-Zyklen eines Laufs und der Kehrwert seines durchschnittlichen CPI-Werts.
Die Anzahl der Befehle pro Taktzyklus kann eins übersteigen, wenn ein Prozessor genügend Befehle überlappt, um mehrere pro Zyklus abzuschließen.
Befehlsanzahl
Eine Befehlsanzahl ist die Anzahl der für eine Aufgabe tatsächlich ausgeführten Maschinenbefehle, einschließlich wiederholter Schleifendurchläufe.
Ein Compiler kann die Befehlsanzahl erhöhen und zugleich die Gesamtzahl der Zyklen senken, indem er aufwendige Befehle durch günstigere ersetzt.
Befehlsmix
Ein Befehlsmix ist die Aufteilung der ausgeführten Befehle auf Klassen und dient dazu, die Zyklenzahl jeder Klasse zu gewichten.
Ein Mix mit vielen aufwendigen Ladebefehlen kann einen höheren CPI-Wert haben als ein Mix, der von einfachen arithmetischen Befehlen dominiert wird.
Befehlsparallelität
Befehlsparallelität überlappt Operationen innerhalb eines Befehlsstroms und nutzt Hardware- und Compilertechniken, um die Ausführungsrate zu erhöhen.
Pipelining trägt zur Befehlsparallelität bei, ohne dass das Programm für jede Operation einen Thread erzeugen muss.
Befehlssatzarchitektur
Eine Befehlssatzarchitektur definiert die Maschinenbefehle, Register, Adressierung und das für maschinennahe Software sichtbare Verhalten.
Zwei unterschiedliche Prozessorentwürfe können dieselbe Befehlssatzarchitektur einhalten und dennoch unterschiedlich viel Zeit für eine Aufgabe benötigen.
Benchmark
Ein Benchmark ist eine festgelegte Programmarbeitslast, mit der die Rechenleistung eines Systems anhand von Arbeit gemessen wird, die einen praktischen Bedarf repräsentieren soll.
Ein Benchmark, der zum Verhalten einer Anwendung passt, ist aussagekräftiger als eine Spitzenleistung ohne Bezug zu dieser Arbeitslast.
Benchmark-Suite
Eine Benchmark-Suite ist eine Sammlung von Arbeitslasten, mit der mehrere Aspekte eines Systems gemessen werden, statt sich auf ein Programm zu verlassen.
Eine Benchmark-Suite kann Unterschiede aufdecken, die ein einzelnes günstiges Programm bei einem Prozessorvergleich verbergen würde.
Benutzer-CPU-Zeit
Die Benutzer-CPU-Zeit misst die Prozessorzeit, die für die Ausführung des eigenen Programmcodes auf Benutzerebene verbracht wird, ohne Betriebssystemausführung.
Ein Zeitmesswerkzeug meldet die Benutzer-CPU-Zeit getrennt von der Zeit für Systemdienste, die das Programm angefordert hat.
Beschleunigbarer Anteil
Der beschleunigbare Anteil ist der Anteil der ursprünglichen Ausführungszeit für Arbeit, die eine vorgeschlagene Verbesserung beschleunigen kann.
Speicheroperationen können einen beschleunigbaren Anteil von 60 % der Zeit haben und zugleich nur 30 % der Befehle ausmachen.
Beschleuniger
Ein Beschleuniger ist spezialisierte Hardware, die eine ausgewählte Art von Arbeit im Vergleich zur Ausführung auf Allzweckhardware effizient erledigen soll.
Ein Videobeschleuniger kann geeignete Kodierarbeit verbessern, wenn Software diese Arbeit an die spezialisierte Hardware weiterleitet.
Betriebssystem
Ein Betriebssystem ist Software, die Hardwareressourcen verwaltet und Dienste bereitstellt, damit Programme den Rechner sicher gemeinsam nutzen können.
Das Betriebssystem plant ein anderes Programm zur Ausführung ein, während eine Anwendung auf eine Speicheroperation wartet.
Binärpräfix
Ein Binärpräfix bezeichnet einen Größenfaktor als Zweierpotenz, etwa KiB für 1.024 Byte oder GiB für 1.073.741.824 Byte.
Das Binärpräfix in KiB unterscheidet Einheiten zu 1.024 Byte von den dezimalen Potenzen in Taktfrequenzeinheiten.
Binärschnittstelle (ABI)
Eine Binärschnittstelle legt neben der für Anwendungsprogramme sichtbaren ISA binäre Konventionen und Betriebssystemschnittstellen fest.
Eine übereinstimmende Binärschnittstelle ermöglicht es einem Funktionsaufruf, die von der aufgerufenen Funktion erwarteten Argumentregister zu verwenden.
Bytecode
Bytecode ist ein Zwischenformat für Befehle einer Sprachlaufzeitumgebung, die ihn interpretieren oder weiter in Maschinencode übersetzen kann.
CPython kompiliert Quellcode zu Bytecode, bevor sein Interpreter die entsprechenden Operationen ausführt.

C

CMOS
CMOS ist die in modernen Prozessoren verwendete Transistortechnologie, bei der Energie durch das Schalten von Signalen und durch statische Leckströme verbraucht wird.
Eine CMOS-Leistungsschätzung trennt den dynamischen Schaltverbrauch von der Leistungsaufnahme, die ohne nützliche Übergänge bestehen bleibt.
Compiler
Ein Compiler übersetzt Programmcode einer Hochsprache in eine maschinennähere Form wie Assemblersprache oder Objektcode für eine Zielmaschine.
Der Compiler wählt beim Übersetzen eines arithmetischen Ausdrucks Register und einen Additionsbefehl aus.
CPU-Leistungsgleichung
Die CPU-Leistungsgleichung stellt den Zusammenhang zwischen CPU-Zeit, Befehlsanzahl, durchschnittlichem CPI-Wert und Taktperiode her, indem sie die drei Faktoren multipliziert.
Die CPU-Leistungsgleichung zeigt, warum eine kleinere Befehlsanzahl ihren Vorteil verlieren kann, wenn der CPI-Wert steigt.
CPU-Taktzyklen
CPU-Taktzyklen sind die gesamten Prozessortakte, die der Ausführung eines Programms zugerechnet werden, einschließlich der Zyklen, die sich aus dem effektiven Aufwand seiner Befehle ergeben.
Sechs Milliarden CPU-Taktzyklen dauern 2 s, wenn die gemessene Taktfrequenz während der gesamten Ausführung 3 GHz beträgt.
CPU-Zeit
Die CPU-Zeit ist die einer Aufgabe zugerechnete Prozessorzeit und umfasst ihre Benutzerausführung sowie die Systemausführung in ihrem Auftrag.
Die über mehrere ausgelastete Kerne summierte CPU-Zeit kann die Gesamtlaufzeit der Aufgabe vom Start bis zum Ende übersteigen.

D

Dark Silicon
Dark Silicon beschreibt Chiphardware, die innerhalb des verfügbaren Leistungs- und Wärmebudgets nicht vollständig gleichzeitig mit voller Geschwindigkeit betrieben werden kann.
Ein Chip kann einige Einheiten inaktiv lassen, weil Dark Silicon die gleichzeitige Nutzung begrenzt, obwohl die Bauelemente auf dem Chip vorhanden sind.
Datenpfad
Ein Datenpfad ist der Teil eines Prozessors, der Daten speichert und Operationen auf ihnen ausführt, wie vom Steuerwerk vorgegeben.
Der Datenpfad addiert zwei Registerwerte, wenn das Steuerwerk die Maschine zur Ausführung einer Addition anweist.
Dennard-Skalierung
Die Dennard-Skalierung ist ein ideales Modell zur Skalierung von Bauelementen, bei dem kleinere Abmessungen und niedrigere Spannung eine höhere Geschwindigkeit bei ungefähr konstanter Leistungsdichte ermöglichen.
Die Dennard-Skalierung bricht zusammen, wenn die Spannung nicht mehr genug sinkt, um die Leistungsaufnahme von mehr aktiven, schnelleren Bauelementen auszugleichen.
DRAM
DRAM ist eine flüchtige Hauptspeichertechnologie, die während des Rechnerbetriebs Programme und Daten enthält; ohne Strom verliert sie ihren Inhalt.
Die Arbeitsdaten eines Programms können im DRAM liegen, während eine gespeicherte Datei auf einem nichtflüchtigen Datenspeicher bleibt.
Durchsatz
Der Durchsatz ist die Menge abgeschlossener Arbeit pro Zeiteinheit, etwa Anfragen pro Sekunde oder Aufträge pro Stunde.
Die Ausführung unabhängiger Aufträge auf mehr Kernen kann den Durchsatz erhöhen, während die Berechnung jedes Auftrags gleich lange dauert.
DVFS
DVFS ist die dynamische Spannungs- und Frequenzskalierung, die Spannung und Betriebsfrequenz eines Chips während der Nutzung gemeinsam anpasst.
DVFS kann die Spannung für einen Betriebspunkt mit niedrigerer Frequenz senken, wenn die benötigte Schaltgeschwindigkeit dies zulässt.
Dynamische Leistungsaufnahme
Dynamische Leistungsaufnahme ist der Energieverbrauch pro Zeit durch Schalten und proportional zu Aktivität, Kapazität, Spannung zum Quadrat und Frequenz.
Eine Spannungssenkung um 10 % bei unveränderter Frequenz und Aktivität senkt die dynamische Leistungsaufnahme auf 81 % ihres alten Werts.
Dynamischer Energieverbrauch
Dynamischer Energieverbrauch entsteht bei Signalübergängen und skaliert mit der kapazitiven Last und dem Quadrat der Versorgungsspannung.
Bei gleicher Spannung verbraucht eine feste Anzahl identischer Übergänge auch bei langsamerer Ausführung dieselbe dynamische Energie.

E

Effektive mittlere Taktfrequenz
Die effektive mittlere Taktfrequenz eines Laufs ist die Anzahl seiner gezählten CPU-Zyklen geteilt durch die zugehörige CPU-Ausführungszeit.
Die effektive mittlere Taktfrequenz berücksichtigt einen Lauf mit Takterhöhung oder Drosselung, statt eine beworbene Frequenz zu verwenden.
Energie
Energie ist die über ein Zeitintervall aufsummierte verbrauchte Menge und wird für eine Aufgabe als mittlere Leistungsaufnahme mal Dauer berechnet.
Eine mittlere Leistungsaufnahme von 20 W über 3 s verbraucht 60 J Energie; diese unterscheidet sich von der Betriebsleistung von 20 W.
Energieproportionalität
Energieproportionalität ist das Entwurfsziel, den Energieverbrauch pro Zeit eines Systems an die Menge der geleisteten nützlichen Arbeit anzupassen.
Ein Server mit hoher Leistungsaufnahme im Leerlauf erreicht keine Energieproportionalität, selbst wenn seine Effizienz bei Spitzenlast gut ist.

G

Geometrisches Mittel
Das geometrische Mittel positiver Werte ist die Wurzel aus ihrem Produkt, wobei der Wurzelgrad der Anzahl der Werte entspricht.
Das geometrische Mittel normierter Benchmark-Verhältniszahlen hält Maschinenvergleiche unabhängig von der Wahl der Referenz.
Gesamtlaufzeit
Die Gesamtlaufzeit ist die Wanduhrzeit einer Ausführung vom Start bis zum Ende, einschließlich CPU-Arbeit, Wartezeiten und Verzögerungen durch die Ablaufplanung.
Das Warten auf eine Datei kann die Gesamtlaufzeit erhöhen, ohne der Aufgabe ebenso viel CPU-Ausführung zuzurechnen.
Gewichtetes arithmetisches Mittel
Ein gewichtetes arithmetisches Mittel berücksichtigt jeden Wert proportional zu seinem Gewicht, etwa dem Ausführungsanteil einer Befehlsklasse.
Das gewichtete arithmetische Mittel des CPI-Werts gibt einem häufigen ALU-Befehl mehr Gewicht als einer selten ausgeführten Klasse bedingter Sprünge.
Gustafsonsches Gesetz
Das gustafsonsche Gesetz modelliert den skalierten Speedup, wenn die parallele Arbeit mit der Prozessoranzahl wächst, während die sequenzielle Zeit im Modell fest bleibt.
Das gustafsonsche Gesetz verwendet einen beim parallelen Lauf gemessenen sequenziellen Anteil, anders als der Anteil in Amdahls Analyse einer festen Aufgabe.

H

Heterogene Prozessorkerne
Heterogene Prozessorkerne sind unterschiedliche Kernentwürfe innerhalb eines Prozessors, die häufig schnelle Kerne mit hoher Leistungsaufnahme und kleinere effiziente Kerne kombinieren.
Ein Chip mit heterogenen Prozessorkernen kann unterschiedliche Arbeit Kerntypen mit unterschiedlicher Rechenleistung und Leistungsaufnahme zuweisen.

I

Integrierter Schaltkreis
Ein integrierter Schaltkreis ist ein Chip, der viele verbundene elektronische Bauelemente, darunter Transistoren, auf einem Stück Halbleitermaterial enthält.
Ein integrierter Schaltkreis kann mehrere Prozessorkerne, Caches und weitere unterstützende Hardware enthalten.
Interpreter
Ein Interpreter ist ein Programm, das Operationen in einer anderen Programmdarstellung liest und durch seine eigene Ausführung umsetzt.
Ein Bytecode-Interpreter führt Maschinenbefehle aus, um die gelesenen Bytecode-Operationen umzusetzen.

J

Just-in-time-Kompilierung
Die Just-in-time-Kompilierung übersetzt Code während der Ausführung in Maschinenbefehle und konzentriert sich häufig auf oft verwendeten Code.
Eine virtuelle Java-Maschine kann die Just-in-time-Kompilierung nutzen, nachdem sie eine häufig ausgeführte Methode erkannt hat.

K

Kapazitive Last
Eine kapazitive Last ist die elektrische Kapazität, die ein Signal laden und entladen muss; sie wird durch die angesteuerten Bauelemente und Leitungen bestimmt.
Eine Verringerung der kapazitiven Last senkt die dynamische Leistungsaufnahme, wenn Spannung, Frequenz und Schaltaktivität unverändert bleiben.
Kritischer Pfad
Ein kritischer Pfad ist der langsamste benötigte Logikpfad zwischen Registern und begrenzt, wie kurz eine sichere synchrone Taktperiode sein kann.
Weniger Arbeit entlang des kritischen Pfads kann eine kürzere Taktperiode ermöglichen, obwohl sich auch die Zyklenanzahl ändern kann.

L

Lader
Ein Lader ist eine Funktion des Betriebssystems, die eine ausführbare Datei im Speicher abbildet und ihren Start auf der Maschine vorbereitet.
Nachdem ein Programm gelinkt wurde, richtet der Lader sein Speicherabbild ein, bevor die Ausführung beginnt.
Lastungleichgewicht
Ein Lastungleichgewicht ist eine ungleichmäßige Aufteilung paralleler Arbeit, bei der einige Prozessoren warten, während ein anderer seinen größeren Anteil abschließt.
Erhält ein Kern 40 Arbeitseinheiten und die anderen wesentlich weniger, hängt der Abschluss wegen des Lastungleichgewichts von diesem Kern ab.
Leckstrom
Leckstrom ist Strom, der durch eigentlich ausgeschaltete Transistoren fließt und zur statischen Leistungsaufnahme eines eingeschalteten Chips beiträgt.
Eine Senkung der Schwellenspannungen kann den Leckstrom erhöhen und eine weitere Senkung der Versorgungsspannung erschweren.
Leistungsaufnahme
Leistungsaufnahme ist der Energieverbrauch pro Zeit, gemessen in Watt, wobei ein Watt einem Joule pro Sekunde entspricht.
Eine höhere Leistungsaufnahme kann dennoch weniger Energie für eine Aufgabe verbrauchen, wenn das Programm ausreichend früher fertig wird.
Leistungsdichte
Leistungsdichte ist die pro Flächeneinheit abgegebene Leistung, bei Chips häufig in Watt pro Quadratmillimeter angegeben.
Mehr aktive Transistoren auf derselben Fläche können die Leistungsdichte erhöhen, sofern die Leistungsaufnahme pro Bauelement nicht genügend sinkt.
Leistungszähler
Ein Leistungszähler ist Hardwareunterstützung zum Zählen von Ausführungsereignissen wie Zyklen oder Befehlen über ein gemessenes Intervall.
Ein Leistungszähler erfasst Zyklen, die zur Schätzung des CPI-Werts durch die zugehörige Befehlsanzahl geteilt werden können.
Linker
Ein Linker verbindet Objektdateien und Bibliothekscode und löst Verweise auf Funktionen und Daten auf, die in getrennten Dateien definiert sind.
Der Linker verbindet einen Aufruf in einer Objektdatei mit der Bibliotheksfunktion, die seine Implementierung bereitstellt.
Lokaler Speedup
Ein lokaler Speedup ist der Faktor, um den eine Verbesserung ihren betroffenen Teil beschleunigt, bevor der Rest der Aufgabe berücksichtigt wird.
Ein lokaler Speedup von vier teilt die ursprüngliche betroffene Zeit durch vier und lässt andere Arbeit unverändert.

M

Maschinensprache
Maschinensprache besteht aus binär kodierten Befehlen, die ein Prozessor gemäß seiner Befehlssatzarchitektur ausführen kann.
Der Hexadezimalwert 0x007302B3 stellt eine maschinensprachliche Kodierung für eine RISC-V-Addition dar.
Mehrkernprozessor
Ein Mehrkernprozessor enthält mehrere Kerne auf einem Chip, von denen jeder seinen eigenen Befehlsstrom ausführen kann, während sie sich einige Ressourcen teilen.
Ein Mehrkernprozessor kann unabhängige Anfragen gleichzeitig bearbeiten, ohne seine Kerne zu einem schnelleren einzelnen Takt zu vereinen.
Mikroarchitektur
Eine Mikroarchitektur ist die interne Organisation der Hardware, die eine ISA implementiert, einschließlich Ausführungseinheiten, Pipelines und Caches.
Ein größerer Cache verändert die Mikroarchitektur, ohne notwendigerweise die Befehlskodierungen einer Binärdatei zu verändern.
MIPS
MIPS ist eine Rate von Millionen ausgeführter Maschinenbefehle pro Sekunde CPU-Zeit, die die nützliche Arbeit einer Aufgabe nicht direkt misst.
Ein Build kann einen höheren MIPS-Wert haben und dennoch später fertig werden, wenn er für dieselbe Aufgabe genügend zusätzliche Befehle ausführt.
Mooresches Gesetz
Das mooresche Gesetz ist der historische Herstellungstrend einer ungefähren Verdopplung der Transistoranzahl auf einem Chip etwa alle zwei Jahre.
Zehn Verdopplungen nach dem mooreschen Gesetz würden die Transistoranzahl um den Faktor 1.024 erhöhen, ohne denselben Speedup zu garantieren.

O

Objektdatei
Eine Objektdatei enthält übersetzten Code und zugehörige Informationen, die mit anderen Dateien verbunden werden können, um eine ausführbare Datei zu erstellen.
Eine Objektdatei kann Maschinenbefehle enthalten und zugleich auf eine Funktion verweisen, die der Linker auflösen muss.

P

Parallele Effizienz
Die parallele Effizienz ist der erreichte oder vorhergesagte Speedup geteilt durch die Prozessoranzahl und drückt den Gewinn im Verhältnis zum idealen linearen Speedup aus.
Ein Speedup von sechs auf acht Kernen ergibt eine parallele Effizienz von 75 %, obwohl die Aufgabe erheblich schneller ist.
Parallelisierbarer Anteil
Der parallelisierbare Anteil in Amdahls Analyse einer festen Aufgabe ist der Anteil der ursprünglichen Zeit auf einem Kern, der auf mehrere Kerne aufgeteilt werden kann.
Ein parallelisierbarer Anteil von 0,95 lässt 5 % der ursprünglichen Zeit sequenziell und begrenzt damit die Gewinne durch zusätzliche Kerne.
Pipelining
Pipelining überlappt Stufen aufeinanderfolgender Befehle, sodass ein Prozessor Arbeit mit einer höheren Rate als bei vollständig sequenzieller Verarbeitung abschließen kann.
Pipelining kann den effektiven CPI-Wert verbessern oder eine kürzere Taktperiode ermöglichen, ohne die von der ISA zugesagten Ergebnisse zu verändern.
Power Wall
Die Power Wall ist die Begrenzung weiteren Taktfrequenzwachstums durch die Leistungsaufnahme und die Wärme, die ein praktikables System abführen kann.
Die Power Wall bewegte Entwickler dazu, zusätzliche Transistoren für mehrere Kerne statt für immer höhere Taktfrequenzen einzusetzen.
Power-Gating
Power-Gating trennt einen ungenutzten Hardwarebereich von der Stromversorgung, um Leckstrom zu verringern, statt diesen Bereich lediglich ungenutzt zu lassen.
Ein Chip verwendet Power-Gating nach Abschluss einer Aufgabe, damit inaktive Schaltungen weniger statische Leistung aufnehmen.
Profiling
Profiling misst, wie sich Ausführungszeit oder damit verbundene Aktivität auf Teile eines Programms aufteilt, um lohnende Verbesserungen zu finden.
Profiling kann zeigen, dass eine mäßige Verbesserung einer häufig genutzten Routine mehr Zeit spart als ein großer Gewinn bei einer selten genutzten.
Pseudobefehl
Ein Pseudobefehl ist eine Kurzform in Assemblersprache, die ein Assembler in einen oder mehrere echte Maschinenbefehle erweitert.
RISC-V mv x5, x6 ist ein Pseudobefehl, der als addi x5, x6, 0 umgesetzt werden kann.

R

Rechenleistung
Für eine feste Aufgabe ist die Rechenleistung der Kehrwert der Ausführungszeit, sodass eine kürzere Dauer einem höheren Leistungswert entspricht.
Eine Halbierung der Zeit für dieselbe abgeschlossene Aufgabe verdoppelt ihre Rechenleistung, sofern die verglichene Arbeit unverändert bleibt.
Rechenleistung pro Watt
Rechenleistung pro Watt ist die nützliche Verarbeitungsleistung geteilt durch die Leistungsaufnahme und drückt aus, wie viel Rechenleistung ein Leistungsbudget ermöglicht.
Mehr Durchsatz bei ähnlicher Leistungsaufnahme verbessert die Rechenleistung pro Watt, wenn beide Ergebnisse dieselbe Art nützlicher Arbeit beschreiben.
RISC-V
RISC-V ist eine offene, lizenzgebührenfreie Befehlssatzarchitektur mit Basisbefehlssätzen für Ganzzahlen und optionalen Standardbefehlserweiterungen.
Ein RISC-V-Programm mit Ganzzahlmultiplikationsbefehlen benötigt Unterstützung für die betreffende Erweiterung.

S

Schwache Skalierung (Weak Scaling)
Bei schwacher Skalierung wächst die Gesamtgröße des Problems proportional zur Prozessoranzahl, sodass die Arbeitsmenge pro Prozessor ungefähr fest bleibt.
Eine Untersuchung der schwachen Skalierung vergrößert die Simulation, wenn mehr Prozessoren verfügbar werden, und hält die Arbeit pro Prozessor ähnlich.
Sequenzieller Anteil
Der sequenzielle Anteil ist der Anteil der Ausführungszeit, der ohne Aufteilung auf mehrere Kerne ablaufen muss, gemessen auf der im Modell angegebenen Grundlage.
Amdahl verwendet einen ursprünglichen sequenziellen Anteil auf einem Kern, während Gustafson den Anteil beim parallelen Lauf verwendet.
SPECrate
SPECrate ist die SPEC-CPU-Kennzahlenfamilie, die den Durchsatz misst, indem sie mehrere Instanzen ausführt und die abgeschlossene Arbeit berücksichtigt.
Eine SPECrate-Verhältniszahl enthält neben der Referenzzeit geteilt durch das gemessene Intervall auch die Anzahl der Instanzen.
SPECspeed
SPECspeed ist die SPEC-CPU-Kennzahlenfamilie, die die Abschlusszeit einer Benchmark-Instanz misst; die Instanz kann mehrere Threads nutzen.
Ein SPECspeed-Ergebnis betrifft die Zeit einer Programminstanz und darf daher nicht als Durchsatz für viele getrennte Instanzen gelesen werden.
Speedup
Ein Speedup ist das Verhältnis einer ursprünglichen Ausführungszeit zur neuen Ausführungszeit für dieselbe Aufgabe nach einer Änderung.
Ein Speedup von 1,25 bedeutet, dass die neue Zeit 80 % der alten Zeit beträgt, eine Verkürzung der Dauer um 20 %.
Spitzenleistung
Eine Spitzenleistung beschreibt eine ideale maximale Verarbeitungskapazität unter günstigen Bedingungen, nicht das gemessene Ergebnis einer Anwendung.
Ein speicherintensives Programm kann weit weniger als die Spitzenleistung eines Chips erreichen, weil die Ausführung auf Daten wartet.
SRAM
SRAM ist eine flüchtige Speichertechnologie für kleine, schnelle Speicherstrukturen wie Caches nahe an der Ausführungshardware des Prozessors.
Ein Prozessor hält kürzlich verwendete Daten in einem SRAM-Cache, um die Zeit für Zugriffe auf den Hauptspeicher zu verringern.
Starke Skalierung (Strong Scaling)
Starke Skalierung misst, wie sich die Ausführungszeit mit der Prozessoranzahl verändert, während die Gesamtgröße des Problems fest bleibt.
Ein Test der starken Skalierung führt dieselbe Simulationsgröße auf mehr Kernen aus und misst, wie viel früher sie fertig wird.
Statische Leistungsaufnahme
Statische Leistungsaufnahme ist der Verbrauch, der ohne nützliches Schalten bestehen bleibt, weil eingeschaltete Bauelemente Leckstrom durchlassen.
Statische Leistungsaufnahme fällt während eines längeren Laufs weiterhin an, selbst wenn eine niedrigere Frequenz seine dynamische Leistungsaufnahme senkt.
Steuerwerk
Das Steuerwerk ist die Prozessorkomponente, die Operationen des Datenpfads steuert und Speicher sowie Ein- und Ausgabe gemäß den Befehlen koordiniert.
Das Steuerwerk wählt die benötigte Operation und das Ziel, wenn die CPU einen Maschinenbefehl ausführt.
System-CPU-Zeit
Die System-CPU-Zeit misst die Prozessorzeit, die für die Ausführung von Betriebssystemcode im Auftrag der gemessenen Aufgabe verbracht wird.
Die CPU-Zeit eines Programms umfasst die System-CPU-Zeit für die Bearbeitung seiner Betriebssystemanfragen.
Systemsoftware
Systemsoftware stellt gemeinsam genutzte Dienste und Unterstützung bei der Programmübersetzung bereit. Dazu gehören Betriebssysteme, Compiler, Linker und Bibliotheken.
Eine Anwendung nutzt Systemsoftware, um Speicher zuzuteilen und ausführbaren Code für den Prozessor vorzubereiten.

T

Taktfrequenz
Die Taktfrequenz ist die Anzahl der Hardware-Taktzyklen pro Sekunde, gemessen in Hertz und häufig in Gigahertz angegeben.
Eine Taktfrequenz von 4 GHz liefert vier Milliarden Zyklen pro Sekunde, nicht vier Milliarden abgeschlossene Quellcodeanweisungen.
Taktperiode
Die Taktperiode ist die Dauer eines Taktzyklus und bei passenden Einheiten gleich dem Kehrwert der Taktfrequenz.
Eine Taktperiode von 250 ps entspricht 4 GHz, weil Taktperiode und Frequenz Kehrwerte sind.
Taktzyklen pro Befehl
Taktzyklen pro Befehl ist die Gesamtzahl der CPU-Zyklen geteilt durch die ausgeführten Befehle eines Laufs und mittelt deren effektiven Aufwand.
Die Taktzyklen pro Befehl steigen, wenn aufwendige Speicherwartezyklen einen größeren Anteil der Ausführung desselben Programms ausmachen.
Thermal Design Power (TDP)
Die Thermal Design Power ist ein Zielwert für die Auswahl einer Kühlung unter festgelegten Betriebsbedingungen, kein momentaner Messwert der Leistungsaufnahme.
Eine anhand der Thermal Design Power ausgelegte Kühlung muss die festgelegten Betriebsbedingungen des Prozessors berücksichtigen.
Thermische Drosselung
Thermische Drosselung verringert die Betriebsgeschwindigkeit eines Prozessors, wenn die Temperatur Grenzwerte erreicht, und hilft dem Chip, seine Wärmeproduktion zu kontrollieren.
Thermische Drosselung kann die CPU-Zeit verlängern, indem sie bei anhaltender Arbeitslast die effektive Taktfrequenz senkt.
Threadparallelität
Threadparallelität führt getrennte Software-Befehlsströme gleichzeitig aus und ermöglicht es mehreren Kernen, zur Ausführung beizutragen.
Eine parallele Bibliothek kann Threadparallelität bereitstellen, sodass unabhängige Teile einer Aufgabe verschiedene Kerne nutzen.
Transistor
Ein Transistor ist ein elektrisch gesteuertes Bauelement, das als Schalter wirkt und die Grundlage für Schaltungen zum Aufbau digitaler Logik bildet.
Viele Transistoren wirken in einer Schaltung zusammen, die einen Addierer innerhalb eines Prozessors implementiert.

Z

Zyklenbudget
Ein Zyklenbudget ist die Gesamtzahl der Prozessorzyklen, die für eine Aufgabe bei einem vorgegebenen Zeitziel verfügbar oder erforderlich sind.
Ein Prozessor mit 4 GHz hat ein Zyklenbudget von 36 Milliarden Zyklen, wenn die Aufgabe innerhalb von 9 s CPU-Zeit abgeschlossen sein muss.

Über diese Einheit

Von StudeliFehler melden

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten