Sie mischen zwei unabhängige (orthogonale) Ideen in der Theorie digitaler Schaltungen: asynchrone Schaltungen und Mehrkernprozessoren.
Asynchrone Schaltungen: Schaltungen, die mehr als einen Takt haben, und die Takte sind asynchron (dh sie haben eine nicht konstante und unvorhersehbare Phasenbeziehung).
Einige Schaltungen verwenden möglicherweise zwei Takte (zum Beispiel), aber eine ist nur eine Division durch 2 der anderen. Diese Schaltungen sind nicht asynchron, da eine Phasenbeziehung zwischen den beiden Takten bekannt ist, obwohl die Frequenzen der Takte unterschiedlich sind.
Möglicherweise haben Sie eine Single-Core-CPU mit wenigen asynchronen Takten und eine Multi-Core-CPU, bei der alle Kerne auf demselben Takt laufen (letzterer ist nur eine imaginäre CPU - alle echten Multi-Core-CPUs haben viele Takte, die aus mehreren Takten bestehen. asynchrone Taktsätze).
Asynchrone Schaltungen sind ein Hauptthema im digitalen Design. Die obige Erklärung ist grundlegend.
Multi-Core-CPUs: wenige parallel geschaltete Mikroprozessoren (Kerne), die hochentwickelte Hardware und Software verwenden, um eine hohe Leistung zu erzielen.
Die übliche Praxis besteht darin, die Kerne in Bezug auf Uhren / Leistung / Ausführung / etc. So unabhängig wie möglich zu machen. Dies ermöglicht eine dynamische (zur Laufzeit) Anpassung der CPU-Aktivität (dh des Stromverbrauchs) an die tatsächlichen Anforderungen des Systems.
Mein Eindruck ist, dass Sie nach einer Erklärung für Mehrkern-CPUs suchen , nicht für asynchrone Schaltungen.
Dieses Thema ist viel, viel größer als alles, was man in die Antwort einfügen kann.
Die Antworten auf Ihre Fragen:
- Die Uhren, die von verschiedenen Kernen verwendet werden (nach meinem besten Wissen), haben dieselben Quellen (können mehrere sein: Kristall, VCO, ...). Jeder Kern hat (normalerweise) wenige gegenseitig asynchrone Taktsätze. Jeder Kern verfügt über eine spezielle Taktsteuerung und Drosselungslogik, mit der der Takt unabhängig für jeden Kern ausgeschaltet oder verlangsamt werden kann. Wenn Sie sich nur für den algorithmischen Aspekt der Parallelität von Kernen interessieren, vergessen Sie (vorerst) die Uhren.
- Sie haben gerade den Hauptaspekt der Kerne Parallelität angegeben - wie Sie mehrere Kerne parallel laufen effizient . Dieses Thema ist riesig und enthält sowohl HW- als auch SW-Lösungen. Aus HW-Sicht modifizieren Kerne sowohl einen gemeinsamen Speicher als auch tauschen Steuer- und Statussignale mit Sequenzierungslogik und untereinander aus. Das Bild wird aufgrund des Vorhandenseins von Caches sehr kompliziert. Ich würde vorschlagen, dass Sie zunächst die Caches lesen, dann die Cache-Kohärenz und erst dann die Einzahlungen in Systeme mit mehreren Kernen.
Hoffe das hilft.