Hat ein PC nur eine Uhr und wo ist sie?

Ich möchte mein Verständnis überprüfen, das ich aus mehreren Quellen zusammengetragen habe, von denen viele veraltet zu sein scheinen und viele widersprüchlich sind.

Meines Wissens nach gibt es in einem modernen PC nur EINE UHR, die so ziemlich alles regelt. Es ist ein Oszillator, der von der Schwingung eines Quarzkristalls abhängt und eine Frequenz von 100 MHz und eine Frequenz von 133 MHz ausgibt. Dieser Taktgeber/Oszillator befindet sich in einem Chip auf der Hauptplatine (dem „Chipsatz“), NICHT INNERHALB DER CPU, wie einige Literatur vermuten lässt. Es gibt jedoch Multiplikatorschaltungen INNERHALB DER CPU, die das 100-MHz-Signal (etwa 35-mal auf 3,4 GHz) erhöhen können, um die Programmausführung zu steuern. Das 133-MHz-Signal wird vom selben Takt an den Speichercontroller geliefert und hochmultipliziert (etwa 16-fach), um die Geschwindigkeit des Speicherbusses zu regulieren. Der Speichercontroller befindet sich ebenfalls in der CPU. Es gibt keinen Front-Side-Bus mehr.

Könnten Sie mir bitte mitteilen, ob diese Informationen korrekt sind, insbesondere die Position der Uhr und dass es nur eine Uhr gibt?

Es würde am Computer liegen und was er sonst noch hatte. Wenn Sie sich ein Standard-PC-Motherboard ansehen, werden Sie viele Kristalle sehen.
Im PC gibt es PLL-Oszillatoren (Phase Locked Loop) und Sie haben Recht, normalerweise befindet sich nur 1 Taktgeneratorchip auf dem Motherboard und die CPU multipliziert
Was meinst du mit "Personalcomputer"? Hat es eine Echtzeituhr? Hat es einen dedizierten Grafikprozessor?
Die schnelle Google-Bildsuche zeigt mindestens 2-3 Quarzoszillatoren nur auf den sichtbaren Teilen der meisten PC-Platinen. Ich denke, für die Echtzeituhr wird mindestens eine zusätzliche 32 kHz verwendet. Wenn Sie nur nach der CPU fragen, müssen Sie das Modell angeben und dann in den technischen Handbüchern nachsehen, welche Eingangstakte erforderlich sind.
Letztendlich wird die Anzahl der Takte durch die Notwendigkeit unterschiedlicher Taktfrequenzen für Peripheriegeräte und die erforderliche Genauigkeit dieser Frequenzen bestimmt. Wenn Sie es mit einer Uhr erreichen könnten, würden Sie es tun. Andernfalls fügen Sie einen weiteren Kristall hinzu. Keine wirklich endgültige Antwort.
Auf einem MoBo sehe ich mindestens zwei Quarzoszillatoren. Ohne PLLs mitzuzählen.
Wie ist es ein Einkristall "und gibt eine Frequenz von 100 MHz und eine Frequenz von 133 MHz aus"?

Antworten (3)

Es gibt eine große Anzahl von Uhren und Uhrenquellen, nein, es gibt nicht nur eine Uhr.

Ja, der x86 wird sehr wahrscheinlich von einer Referenzuhr mit eingebauten PLLs angetrieben, das bedeutet nicht, dass die Innenseiten nur auf der einen Uhr laufen, es gibt wahrscheinlich besonders mit den aktuellen VIELE Uhren, die von dieser Uhr abgeleitet sind.

Der PCIe kann seinen eigenen Referenztakt haben oder einen erzeugen, heutzutage ist der PCIe-Root-Komplex Teil des Hauptprozessorpakets und kein separater Chip.

Das Netzwerk hat im Allgemeinen einen eigenen Referenztakt, also einen weiteren Oszillator plus Plls im Inneren. Die WLAN-Module werden wie Sicherheitsgurte und Airbags für eine sehr kurze Liste von Lieferanten gekauft, damit sie ihre eigenen Taktquellen haben.

Ihr PC ist voll von Mikrocontrollern und anderen ähnlichen eingebetteten Geräten, die in anderen Teilen versteckt sind (Netzwerkphysik, Batteriemanagement, Tastatur, Maus usw. usw. usw.). Die meisten davon haben ihre eigenen Uhren und manchmal PLLs. High-End-Mikrocontroller können / werden von mehr als einem für eine RTC betrieben. Beispielsweise kann die Hauptuhr multipliziert werden, aber die Unterabschnitte des Chips werden von Divisionen davon betrieben, und wenn Sie Ethernet oder eine andere ähnliche Schnittstelle haben, gibt es wahrscheinlich eine andere Oszillator dafür, aber es hängt von der Implementierung ab.

Wie bereits erwähnt, hat die RTC idealerweise einen eigenen Oszillator plus Schaltungen, um alles temperaturmäßig oder anders stabil zu halten, damit die Referenzuhr nicht so stark driftet.

Wenn Sie nun glauben möchten, dass das Lehrbuch nicht die reale Welt oder eine Teilmenge der prozessorbasierten Produkte der realen Welt ist, können Sie nicht alle großen Stifte oder Kugeln ohne Probleme mit hoher Geschwindigkeit haben, und Sie können die Innenseiten viel schneller machen als die Außenseite und immer weiter, also ist die typische Lösung eine Referenzuhr, bei der 100 MHz keine Seltenheit sind, aber es gibt auch andere, da Oszillatoren so teuer sind. Dann multiplizieren Sie das intern bis zu dem, was der Chip ausführen kann oder Ihre Stromversorgung oder Kühlung unterstützen kann usw., und idealerweise betreiben Sie den Chip von Divisionen dieser Uhr. Kein Grund, die uart-Logik beispielsweise mit 4 GHz auszuführen, das ist nur eine Energieverschwendung, also würden Sie intern einen Peripheriebus entwerfen, der langsamer mit einer Taktdomänengrenze getaktet wird. Wenn es einfach ein Teiler der Hauptuhr ist, dann ist es viel einfacher, damit umzugehen, aber manchmal haben Sie unterschiedliche Plls. (Oh, das erinnert mich daran, dass der DRAM-Controller möglicherweise die Hauptuhr verwendet, aber wahrscheinlich seine eigenen Plls hat, habe Designs mit vielen von ihnen gesehen).

Und Sie entwickeln sich zu dem, was Leute wie Intel verwenden, wo sicherlich die Stromversorgung des Chips ständig angepasst werden kann, um den Verbrauch zu minimieren (noch ein weiterer Prozessor im Chip, der Code ausführt, um dies unabhängig vom x86 zu verwalten), und ich würde auch dynamische Taktgeschwindigkeitsfunktionen erwarten die es in irgendeiner Form schon gab, aber wahrscheinlich immer besser werden. aber Sie können zum Beispiel nicht mit den USB-Uhren herumspielen, also müssen Sie das festhalten, Dram sollten Sie festhalten. PCIe hat Spezifikationen, Video usw.

Ja, auf der Basis eines isolierten Moduls ist es nicht ungewöhnlich, einen Referenztakt und einen PLL im Inneren zu haben, und die Interna laufen von einem Takt oder verschiedenen Unterteilungen des PLL oder des Haupt-/Schnelltakts.

PCs haben VIELE Prozessoren und VIELE separate Uhren, einige sind kristallbasiert und andere nicht. Und es müsste mehr als ein Kristall vorhanden sein, um alles zu unterstützen, was dort vor sich geht, und es wäre unmöglich, einen Kristall auf die ganze Kiste aufzufächern.

Vielen Dank für die ausführliche Antwort. Ich frage mich, wie synchroner DRAM synchronisiert wird. Ist es richtig zu sagen, dass in einem typischen PC (falls es so etwas wie einen typischen gibt) die CPU und der Speicherbus von demselben Oszillator geregelt werden? Wenn ich meinen Computer mit CPU-Z überprüfe, ist meine Kerngeschwindigkeit ein Vielfaches von 100 MHz, aber meine DRAM-Frequenz ist ein Vielfaches von 133 MHz. Wenn CPU und DRAM unterschiedliche Oszillatoren verwenden, besteht sicherlich das Risiko, dass sie um einen unvorhersehbaren Betrag phasenverschoben sind. Werden 133 MHz irgendwie von 100 MHz abgeleitet oder von einem anderen Oszillator?
Sie können es mit den 100 MHz tun, die Produkte, an denen ich arbeite, tun. Wir haben keinen separaten Oszillator für den DRAM, aber wir haben viele PLLs, damit wir die Frequenz erhalten können, da es sich nicht um eine Teilung des VCO von der PLL der Hauptuhren handelt. das waren die 1333.3333 1666.6666 und solche kommen daher da ist eine teilung durch drei drin.
Ja, Sie haben Taktbereichsübergänge innerhalb oder zwischen diesen Logikblöcken, die gut gestaltet sein müssen. das gleiche gilt für pcie und netzwerk und andere. Selbst mit demselben Referenztakt jittern separate PLLs unabhängig voneinander (selbst wenn sie den "gleichen" Geschwindigkeitstakt erzeugen), sodass Sie Ihre Taktdomänen definieren und sicher überqueren müssen.
An dieser Stelle würde ich denken, dass der Begriff in SDRAM synchronisiert irreführend ist, vielleicht jemandes Marketingbegriff von Anfang an. Der Prozessor und der DRAM sind eindeutig getrennte Taktdomänen, und es gibt eine Kreuzung, der Prozessor hat seine Busse, der DRAM hat seine. Wenn Sie einen DRAM-Controller kaufen, der prozessorseitige Schnittstellen bereitstellt, setzen Sie idealerweise einen Cache davor, um das Leben für alle einfacher zu machen, außer für die Validierungs- und MFG-Testteams. Der Prozessor kann auf seiner Seite Übertragungen von Byte-Größe aufwärts durchführen
Cache, und auf der DRAM-Controller-Seite des Caches können Sie dann alle Übertragungen in der Cache-Zeilengröße vornehmen, die ein ganzzahliges Vielfaches der DRAM-Busgröße wäre, was bedeutet, dass auf der DRAM-Seite keine Lese-, Änderungs- und Schreibvorgänge erfolgen. Bedeutet nicht, dass jeder es so macht, aber es ist eine schöne, saubere Lösung. und die DRAM-Seite des Cache befindet sich natürlich in der Taktdomäne des Prozessors, und der DRAM-Controller sitzt im Wesentlichen über beiden Domänen, der DRAM-Seite und der Cache/Prozessor-Seite.
Vielen Dank dafür. Ich muss mich mehr mit dem Überqueren von Taktdomänen befassen, aber ich fange an zu verstehen.
Chips/Platten usw. haben nicht viel Magie. Wie beim Bau eines Autos finden Sie einen Lieferanten für einige der Teile, Reifen, Räder, Bremsen und sogar Motoren, und Sie bauen einige der Teile selbst und kleben/schweißen/schrauben alles zusammen, was auch immer es braucht. Der Versuch, Stoff auf Stahl zu kleben, funktioniert nicht so gut, also machen Sie stattdessen einen Clip und bauen etwas Spannung ein, um ihn dort zu halten, oder eine andere Lösung für jede Stelle, an der sich zwei Materialien treffen. Sie kaufen den PCIe-Controller, Sie kaufen den Phy, die Serdes, den DRAM-Controller, den Phy. die plls bekommst du aus einer zellbibliothek für die gießerei und klebst sie zusammen
Sie durchlaufen einen Zeitanalysezyklus. Wie bei diesem Prozess usw. wird unsere maximale Uhr für diese Domäne dies sein und diese Domäne wird das sein. Wenn wir diese Domain schneller wollen, dann sind hier die Pfade, die geändert werden müssen, wiederholen. Wie beim Bau eines Hobbyboards, kaufe eines von diesen beiden, ein paar Drähte, ein paar Steckverbinder, löte/jumper es zusammen, los geht's, mein kleiner Roboter ...
Sie lassen PC-Design wie ein bisschen Ausweichjob klingen :)
Es ist was für ein normaler Job, einige Teile zu kaufen und sie zusammenzukleben ... PCs sind nicht anders als jedes andere Produkt. Nehmen Sie das letzte Design, schnitzen Sie das Alte heraus, stecken Sie das Neue hinein, etwas mehr Kleber, fertig. könnte es sich sonst nicht leisten, im Geschäft zu bleiben. Software, die Sie Code aus den letzten X Jahren/Jahrzehnten Ihrer Arbeit (oder anderen) ausleihen. selten ist es ein sauberes Blatt von Grund auf neu gestaltet. Chips sind nicht anders als PCs, es ist unglaublich teuer und die Kosten für die Entwicklung von so etwas wie einem PCI-Controller oder DRAM sind verrückt, also kaufen Sie es von den Leuten, die ihren alten optimieren, um einen neuen zu machen.

Es gibt mehrere Uhren:

  • Echtzeituhr (RTC), die batteriegepuffert ist
  • Systemreferenzuhr, von der aus andere Uhren definiert werden
  • externe (Internet-) Uhr

Die RTC (manchmal auch „CMOS“ genannt, da sie früher Teil des batteriegepufferten RAM war) ist eine kleine, stromsparende Zeitnehmungsuhr, die auf einem Niederfrequenzuhrquarz läuft. Wenn das System ausgeschaltet ist, wird diese Uhr mit einer kleinen Batterie wie einer Knopfzelle oder in einigen Fällen einem Superkondensator am Leben erhalten. Diese definiert die Uhrzeit beim Systemstart und auch dann, wenn keine verlässliche externe Zeitreferenz verfügbar ist.

Die Systemreferenzuhr ist ein Kristall oder Oszillator, der den Motherboard-Chipsatz und die CPU speist. Typischerweise hat der Kristall mehrere zehn MHz; er kann für die Verteilung hochmultipliziert werden (Details sind chipsatzabhängig). Dieser Takt treibt wiederum die verschiedenen PLLs an, die den Prozessor-, Speicher- und E/A-Takt definieren. Die CPU basiert ihren Zeittakt auf dieser Uhr, wenn sie läuft, und synchronisiert zu bestimmten Zeiten ihre berechnete Wanduhrzeit mit einem bekanntermaßen guten Wert von einer externen Quelle.

Schließlich erhalten Computer, die mit einem Netzwerk verbunden sind, die Wanduhrzeit von einer nachvollziehbaren Quelle, die häufig ein Protokoll namens NTP oder Network Time Protocol verwendet. Mehr dazu hier: http://www.ntp.org/

Weder die RTC- noch die Systemreferenzuhren sind besonders genau und weisen typische Kristallfrequenzfehler im Bereich von 10 bis 50 ppm auf. NTP stellt einen maßgeblichen Atomuhr-Referenzstandard bereit, der nicht nur zur Korrektur der Drift der Systemuhr verwendet wird, sondern auch zur Aktualisierung der RTC.

Das macht allmählich mehr Sinn. Ich bin aber immer noch etwas verwirrt. Wenn ich meinen eigenen Computer mit CPU-Z inspiziere, kann ich sehen, dass die CPU 100 MHz etwa 35-mal multipliziert, um mir eine Kerngeschwindigkeit von 3,5 GHz zu geben. Die Informationen, die ich über den Arbeitsspeicher sehe, deuten auf eine Basistaktrate von 133 MHz hin. Ist diese neue Geschwindigkeit das Ergebnis einer Multiplikation von 100 MHz in irgendeiner Weise?
Es hängt von der Takt-PLL ab und davon, wie sie hoch und runter multiplizieren kann. PLLs können Teiler am Eingang, am Feedback oder am Ausgang haben. Wenn sie beispielsweise eine Referenz von 100 verwenden, diese durch 3 auf 33,33 vordividieren und dann mit 100 auf 3,333 GHz multiplizieren, können sie eine PLL mit Schritten von 33,33 MHz haben.
Habe es. Danke.

In einem Mikrocontroller haben Sie wahrscheinlich nur eine Uhr und normalerweise eine Reihe von PLLs, um abgeleitete Uhren zu erhalten. In einem PC haben Sie wahrscheinlich mehrere Uhren.

Typischerweise gibt es:

  • Die CPU-Uhr, die Sie erwähnt haben
  • Eine Echtzeituhr (RTC), die bei ausgeschalteter Maschine konstant mit geringem Strom läuft

Darüber hinaus können andere Peripheriegeräte ihre eigenen Uhren haben, insbesondere wenn ihre zeitlichen Beschränkungen von der CPU-Uhr abweichen, wenn sie sich auf Zusatzgeräten/-karten befinden oder wenn sie laufen müssen, während die CPU-Uhr im Leerlauf ist.

Tatsächlich verfügen fast alle modernen MCUs über mehrere Takte/Oszillatoren, insbesondere alle, die eine PLL bieten, da sie Alternativen mit geringem Stromverbrauch und niedriger Geschwindigkeit anbieten möchten, wenn das Starten dieses Systems nicht erwünscht ist, und weil Dinge wie Watchdogs wohl nicht davon abhängen sollten Es. Selbst wenn es nur ein einziges Clock-Routing gibt, gibt es mehrere Oszillatoren, die ausgewählt werden können, um es zu speisen - auf dem Chip niedrige Geschwindigkeit, auf dem Chip hohe Geschwindigkeit, externer Kristall usw. Nur die ältesten oder die meisten Barebone-Teile haben einen einzigen Oszillator.