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?
Antworten:
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 Intels SpeedStep. Aber zu allen Zeiten die CPU ist absolut 100% gesperrt auf das Taktsignal.
CPU-Befehle arbeiten auf einer viel höheren Ebene. Eine einzelne Anweisung ist eine komplexe Sache und kann von weniger als einem Zyklus bis zu Tausenden von Zyklen dauern , wie hier auf Wikipedia erläutert .
Ein Befehl wird also im Grunde eine gewisse Anzahl von Taktzyklen verbrauchen . In modernen CPUs ist aufgrund von Technologien wie Mehrkern, HyperThreading, Pipelining, Caching, nicht ordnungsgemäßer und spekulativer Ausführung die genaue Anzahl der Taktzyklen für einen einzelnen Befehl nicht garantiert und variiert bei jeder Ausgabe eines solchen Befehls !
BEARBEITEN
Ja und nein. 99,99% der Endbenutzer sind an der Gesamtleistung interessiert , 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 Latenz / den Durchsatz von CPU-Anweisungen .
Es gibt Forscher, die es auf sich genommen haben, dies herauszufinden. Hier sind zwei PDFs, die von Interesse sein könnten:
Leider ist es schwierig, Abweichungsdaten zu erhalten . Zitat aus dem ersten PDF:
Trotzdem eine interessante Lektüre!
quelle
But at all times the CPU is absolutely 100% locked to the clock signal
Gilt natürlich nur für synchrone CPUs. Es ist albern, über Ticks in einer asynchronen (Natürlich nicht. Sogar die allerbesten Uhren sind nicht streng periodisch. Die Gesetze der Thermodynamik sagen etwas anderes:
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 gibt es das Network Time Protocol .
Vorhersage: Wir werden wieder ein bisschen Chaos erleben, wenn die besten Atomuhren der Welt vom 30. Juni 2015 um 23:59:59 UTC bis zum 30. Juni 2015 um 23:59:60 UTC bis zum 1. Juli 2015 um 00:00:00 Uhr laufen KOORDINIERTE WELTZEIT. 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 aus dem Ruder laufen, so wie sie es 2012 getan haben.
quelle
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. Verändern 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.
quelle
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 "Erfassungstakt" ist die nächste Taktflanke 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 ungünstigste Ankunftszeit aller Eingaben für alle 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 ( PVT ) ab. 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,
0x1fffffff + 1 = 0x1f000000
ob 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 Streuspektrums zum Bestehen von EMV-Tests).
quelle
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.
quelle