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?