it-swarm.com.de

Sind CPU-Takt-Ticks streng periodisch?

Ist die Frequenz einer CPU ein Mittelwert für die Anzahl der Taktimpulse in einer Sekunde oder weist sie eine stärkere physikalische Stabilität auf?

Meiner Meinung nach darf es weder stabil noch instabil sein. Gibt es also Informationen zur Varianz einer CPU?

Ist die Zyklusdauer einer CPU genau auf die Kristallschwingung abgestimmt? Oder muss die CPU nur sicher sein, einen Zyklus vor dem nächsten Tick zu erreichen?

51
Gael

Wie bei jeder komplizierten Sache können Sie die Funktionsweise einer CPU auf verschiedenen Ebenen beschreiben.

Auf der grundlegendsten Ebene wird eine CPU von einem genauen Takt gesteuert. Die Frequenz der Uhr kann sich ändern. Denken Sie an den SpeedStep von Intel. Die CPU ist aber zu jeder Zeit absolut 100%gesperrtzum Taktsignal.

CPU-Befehle arbeiten auf einer viel höheren Ebene. Eine einzelne Anweisung ist eine komplexe Sache und kann vonweniger als einem Zyklus bis zu Tausenden von Zyklendauern, um wie hier auf Wikipedia erklärt zu vervollständigen.

Ein Befehl wird also im Grunde genommeneine gewisse Anzahl von Taktzyklenverbrauchen. In modernen CPUs ist die genaue Anzahl der Taktzyklen für einen einzelnen Befehl aufgrund von Technologien wie Mehrkern, HyperThreading, Pipelining, Caching, Out-of-Order und spekulativer Ausführung nicht garantiert und variiert jedes Mal, wenn Sie einen solchen Befehl ausgeben !

EDIT

gibt es Informationen zur Varianz für eine bestimmte CPU?

Ja und nein. 99,99% der Endbenutzer interessieren sich fürGesamtleistung, die durch Ausführen verschiedener Benchmarks quantifiziert werden kann.

Was Sie verlangen, sind hochtechnische Informationen. Intel veröffentlicht keine vollständigen oder genauen Informationen über die CPU-AnweisungLatenz/Durchsatz.

Es gibt Forscher, die es auf sich genommen haben, dies herauszufinden. Hier sind zwei PDFs, die von Interesse sein könnten:

Leider ist es schwer,varianzdaten zu bekommen. Zitat aus dem ersten PDF:

die angegebenen Zahlen sind Mindestwerte. Cache-Fehler, Fehlausrichtungen und Ausnahmen können die Taktanzahl erheblich erhöhen.

Trotzdem eine interessante Lektüre!

49
misha256

Sind CPU-Takt-Ticks von Natur aus streng periodisch?

Natürlich nicht. Sogar die allerbesten Uhren sind nicht streng periodisch. Die Gesetze der Thermodynamik sagen etwas anderes:

  • Zeroth Gesetz: Es gibt ein böses kleines Spiel, das das Universum für Sie spielt.
  • Erstes Gesetz: Sie können nicht gewinnen.
  • Zweites Gesetz: Aber Sie könnten an einem sehr kalten Tag die Gewinnschwelle überschreiten.
  • Drittes Gesetz: So kalt wird es nie.

Die Entwickler der allerbesten Uhren sind sehr bemüht, die Gesetze der Thermodynamik zu überwinden. Sie können nicht gewinnen, aber sie sind fast ausgeglichen. Die Uhr auf Ihrer CPU? Es ist Müll im Vergleich zu diesen besten Atomuhren. Aus diesem Grund existiert das Network Time Protocol .


Vorhersage: Wir werden wieder ein bisschen Chaos erleben, wenn die besten Atomuhren der Welt vom 30. Juni 2015, 23:59:59 UTC bis zum 30. Juni 2015, 23:59:60 UTC bis zum 1. Juli 2015 laufen 00:00:00 UTC. Zu viele Systeme erkennen keine Schaltsekunden und haben eine Sicherheitsstufe von zwei (was eine Zeitänderung von mehr als einer Sekunde verhindert). Der Clock-Jitter in diesen Systemen bedeutet, dass die Schaltsekunde des Network Time Protocol abgelehnt wird. Eine Reihe von Computern wird, genau wie im Jahr 2012, kaputt gehen.

29
David Hammen

Um das Jahr 2000, als die Taktraten von CPUs in den Bereich kamen, in dem auch Mobiltelefone betrieben wurden, wurde es üblich, eine Variation der tatsächlichen Taktrate hinzuzufügen. Der Grund ist einfach: Wenn der CPU-Takt genau 900 MHz beträgt, werden alle elektronischen Interferenzen mit dieser Frequenz erzeugt. Variieren Sie die Taktfrequenz ein wenig zwischen 895 und 905 MHz, und die Interferenz wird ebenfalls über diesen Bereich verteilt.

Dies war möglich, weil moderne CPUs hitzebeschränkt sind. Sie haben kein Problem damit, für kurze Zeit etwas schneller zu laufen, da sie sich abkühlen können, wenn die Uhr später verlangsamt wird.

22
MSalters

Digital Logic Designer hier. Die tatsächliche Zeit, die ein Logiknetzwerk benötigt, um sich als Reaktion auf ein Eingangssignal zu ändern, ist die Ausbreitungsverzögerung . Stellen Sie sich das System vor als:

registers A,B,C... ---> logic cloud ---> registers A',B',C'

Die "Startuhr" ist die Taktflanke, zu der sich der erste Registersatz ändert. Die "Capture Clock" ist die nächste Clock-Flanke eine Periode später. Damit das System funktioniert, muss die Ausgabe der Logikwolke stabil sein, bevor der Erfassungstakt eintrifft.

Der Prozess, um sicherzustellen, dass dies funktioniert, ist die Timing-Analyse. Ermitteln Sie mithilfe einer physikbasierten Simulation des Systems die Worst-Case- Ankunftszeit von Eingaben zu Ausgaben. Die größte dieser Zahlen im System legt die minimale Taktperiode fest.

Beachten Sie den schlimmsten Fall . Die tatsächliche Ausbreitungszeit ist kürzer, hängt jedoch von den Schwankungen des Herstellungsprozesses, der aktuellen Temperatur und der Chipspannung ab ( PVT ). In der Praxis bedeutet dies, dass Sie eine schnellere Taktung anwenden können (Übertakten) und dies möglicherweise funktioniert. Es kann auch anfangen, Fehler zu produzieren, wie zum Beispiel zu entscheiden, dass 0x1fffffff + 1 = 0x1f000000, wenn das Übertragsbit nicht rechtzeitig ankommt.

Chips können auch mehr als einen Takt an Bord haben (normalerweise ist der FSB langsamer als der Kern), und der tatsächliche Takt kann zu Zwecken der Wärmesteuerung hoch- oder heruntergefahren oder variiert werden (MSalters Antwort zur Verwendung des Spreizspektrums) zum Bestehen von EMV-Prüfungen).

22
pjc50

Ist die Befehlsdauer einer CPU genau auf die Kristallschwingung abgestimmt? Oder muss die CPU nur sicher sein, vor dem nächsten Tick eine Anweisung zu erhalten?

Weder. Die Anweisungsdauer wird eine Anzahl von Takten sein, aber diese Anzahl kann basierend auf den Anforderungen der Anweisung variieren. Wenn zum Beispiel ein Befehl keinen Vorwärtsfortschritt machen kann, bis sich ein bestimmter Speicherplatz im L1-Cache befindet, wird der Befehl nicht vor dem nächsten Takt-Tick abgeschlossen. Solange dies nicht der Fall ist, werden keine Vorwärtsbewegungen bei dieser Anweisung ausgeführt.

Wenn die CPU jedoch entscheidet, etwas zu tun, besteht die grundlegende Methode darin, ihre internen Schalter so einzurichten, dass eine bestimmte Information zu einem bestimmten Teil der CPU gelangt. Sie wartet darauf, dass die Eingabe diesen Teil erreicht und die Ausgabe den nächsten Teil. Dieser Warteabschnitt ist der Zweck der Uhr.

Stellen Sie sich eine physikalische Schaltung vor, die zwei Binäreingänge verwendet und diese summiert und die Summe auf einem dritten Kabelsatz ausgibt. Um eine Addition durchzuführen, muss die CPU dafür sorgen, dass die beiden Zahlen zu diesem Addierer addiert werden und die Ausgänge beispielsweise zu einem CPU-Register-Latch gelangen. Die CPU kann dem Latch nicht mitteilen, die Ausgabe zu speichern, bis die Eingaben den Addierer erreichen, der Addierer die Ausgabe erzeugt und die Ausgabe den Latch erreicht. Dies ist der Zweck der Uhr - um die Wartezeit zwischen dem Anordnen von Eingaben zu einem bestimmten Zeitpunkt und der Erwartung, dass die Ausgabe einsatzbereit ist, festzulegen.

2
David Schwartz