Aus dem Buch Moderne Betriebssysteme ;
Die Fülle von Transistoren auf einem einzelnen Chip führt zu einem Problem: Was tun mit all diesen Transistoren?
Wir haben oben einen Ansatz gesehen: Superskalare Architekturen mit mehreren Funktionseinheiten . Mit zunehmender Anzahl der Transistoren ist jedoch noch mehr möglich. Es liegt auf der Hand, größere Caches auf den CPU-Chip zu legen. Das ist auf jeden Fall gut, aber irgendwann wird der Punkt erreicht, an dem die Renditen sinken.
Der naheliegende nächste Schritt besteht darin, nicht nur die Funktionseinheiten , sondern auch einen Teil der Steuerlogik zu replizieren . Der Intel Pentium 4 hat diese Eigenschaft, Multithreading oder Hyperthreading (wie Intel es nennt), für den x86-Prozessor eingeführt, und mehrere andere CPU-Chips haben sie ebenfalls, darunter die SPARC-, die Power5-, die Intel Xeon- und die Intel Core-Familie. In erster Näherung ermöglicht es der CPU, den Status von zwei verschiedenen Threads zu speichern und dann im Nanosekundenbereich vor- und zurückzuschalten. (Ein Thread ist eine Art leichter Prozess, der wiederum ein laufendes Programm ist. Wir werden in Kapitel 2 auf die Details eingehen.)
Eine superskalare Architektur ist in der vorherigen Abbildung 1-7 (b) dargestellt:
Ich frage mich, was eine funktionale Einheit und eine Steuerungslogik in einer CPU bedeuten.
Repliziert eine superskalare Architektur auch die Steuerlogik?
Sind "Funktionseinheit" und "Einheit ausführen" dasselbe?
Ist "Steuerlogik" mit "Fetch Unit" und "Decode Unit" identisch?
Ich zögere aus folgenden Gründen, die obigen Fragen mit Ja zu beantworten. Der Text besagt, dass superskalare Architekturen die Funktionseinheiten replizieren, während Multithreading nicht nur die Funktionseinheiten, sondern auch die Steuerlogik repliziert.
Aber in Abbildung 1.7 (b) hat der Superskalar neben mehreren Ausführungseinheiten auch mehrere Abruf- und Dekodiereinheiten, sodass ich nicht sicher bin, ob "Steuerlogik == Einheiten abrufen und dekodieren" und "Funktionseinheit == Einheit ausführen".
Auch durch Multithreading bedeutet der Text tatsächlich Zeitmultiplex. Ich weiß nicht, wie die Replikation der Steuerlogik für Zeitmultiplex erforderlich ist. Können sich nicht mehrere Threads oder Prozesse zu unterschiedlichen Zeiten die gleichen Steuereinheiten (Abrufeinheit und Dekodiereinheit) teilen?
Antworten:
Sind "Funktionseinheit" und "Einheit ausführen" dasselbe?
Ja (im Zusammenhang mit der Verwendung in Ihrem Buch).
Ausführungseinheit
Quelle Ausführungseinheit
Ist "Steuerlogik" mit "Fetch Unit" und "Decode Unit" identisch?
Ja (im Zusammenhang mit der Verwendung in Ihrem Buch).
...
Quelle Steuergerät
Zentraleinheit
Quelle Zentraleinheit
quelle
Funktionseinheiten der CPU
Informationen aus dem RAM werden über die BIU gesendet, die eine Kopie erstellt und an den L2-Cache sendet.
Die BIU bestimmt, ob die Informationen Daten oder Anweisungen sind. und sendet es an den entsprechenden L1-Cache.
Die CU holt den Befehl aus dem Befehls-Cache und zerlegt ihn in Mikrobefehle, bevor er an die Ausführungseinheit geliefert wird.
Die Ausführungseinheit besteht aus ALU, FPU oder MMX (Grafik / Audio). Sie prüft, ob Daten benötigt werden, holt Daten aus dem L1-Daten-Cache → L2-Cache → RAM.
quelle