Was sind Funktionseinheit und Steuerlogik einer CPU?

-1

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: Bildbeschreibung hier eingeben

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?

Tim
quelle
1
Definiert das Buch nicht "funktionale Einheit"? Wenn es kein besseres Buch gibt.
DavidPostill
Nein, tut es nicht. Kannst du mir sagen, was sie sind?
Tim,

Antworten:

4

Sind "Funktionseinheit" und "Einheit ausführen" dasselbe?

Ja (im Zusammenhang mit der Verwendung in Ihrem Buch).


Ausführungseinheit

In der Computertechnik ist eine Ausführungseinheit (auch Funktionseinheit genannt ) ein Teil einer CPU, die die vom Computerprogramm geforderten Operationen und Berechnungen ausführt. Es kann eine eigene interne Steuersequenz-Einheit (nicht zu verwechseln mit der CPU-Hauptsteuereinheit), einige Register und andere interne Einheiten wie eine Sub-ALU oder FPU oder einige kleinere, spezifischere Komponenten haben. [1]

Moderne CPUs haben häufig mehrere parallele Ausführungseinheiten, die als skalares oder superskalares Design bezeichnet werden. Die einfachste Anordnung besteht darin, einen Busmanager zum Verwalten der Speicherschnittstelle und die anderen zum Durchführen von Berechnungen zu verwenden. Darüber hinaus werden die Ausführungseinheiten moderner CPUs normalerweise per Pipeline verbunden.

Quelle Ausführungseinheit


Ist "Steuerlogik" mit "Fetch Unit" und "Decode Unit" identisch?

Ja (im Zusammenhang mit der Verwendung in Ihrem Buch).

Die Steuereinheit ist eine Komponente der Zentraleinheit (CPU) eines Computers, die den Betrieb des Prozessors steuert. Es teilt dem Arbeitsspeicher, der Arithmetik- / Logikeinheit sowie den Eingabe- und Ausgabegeräten des Computers mit, wie auf die Anweisungen eines Programms zu reagieren ist.

...

Die Steuereinheit (CU) ist im Allgemeinen eine große Sammlung komplexer digitaler Schaltungen, die die vielen in einer CPU enthaltenen Ausführungseinheiten miteinander verbinden und steuern. Die CU ist normalerweise die erste CPU-Einheit, die von einem extern gespeicherten Computerprogramm ein einzelnes akzeptiert Befehl, basierend auf dem Befehlssatz der CPU, decodiert dann diesen einzelnen Befehl in mehrere aufeinanderfolgende Schritte ( Abrufen von Adressen / Daten aus Registern / Speicher, Verwalten der Ausführung [dh an die ALU oder E / A gesendete Daten] und Zurückspeichern der resultierenden Daten in Register / Speicher), die das Zusammenspiel der CPU steuern und koordinieren.

Quelle Steuergerät


Zentraleinheit

Holen

Der erste Schritt, Abrufen, beinhaltet das Abrufen eines Befehls (der durch eine Zahl oder eine Folge von Zahlen dargestellt wird) aus dem Programmspeicher. Der Ort (die Adresse) des Befehls im Programmspeicher wird von einem Programmzähler (PC) bestimmt, der eine Nummer speichert, die die Adresse des nächsten abzurufenden Befehls identifiziert. Nachdem ein Befehl abgerufen wurde, wird der PC um die Länge des Befehls inkrementiert, sodass er die Adresse des nächsten Befehls in der Sequenz enthält. [D] Häufig muss der abzurufende Befehl aus einem relativ langsamen Speicher abgerufen werden Die CPU wird angehalten, während auf die Rückgabe des Befehls gewartet wird. Dieses Problem wird in modernen Prozessoren hauptsächlich durch Caches und Pipeline-Architekturen behoben (siehe unten).

Dekodieren

Die Anweisung, die die CPU aus dem Speicher abruft, bestimmt, was die CPU tun muss. Im Decodierschritt wird der Befehl in Teile zerlegt, die für andere Teile der CPU von Bedeutung sind. Die Art und Weise, wie der numerische Befehlswert interpretiert wird, wird durch die Befehlssatzarchitektur (ISA) der CPU definiert. [E] Häufig gibt eine Gruppe von Zahlen im Befehl, der so genannte Opcode, an, welche Operation auszuführen ist. Die verbleibenden Teile der Nummer liefern normalerweise Informationen, die für diesen Befehl erforderlich sind, z. B. Operanden für eine Additionsoperation. Solche Operanden können als ein konstanter Wert (als Sofortwert bezeichnet) oder als ein Ort zum Lokalisieren eines Werts angegeben werden: ein Register oder eine Speicheradresse, wie durch einen Adressierungsmodus bestimmt.

In einigen CPU-Designs ist der Befehlsdecodierer als festverdrahtete, unveränderbare Schaltung implementiert. In anderen wird ein Mikroprogramm verwendet, um Anweisungen in Sätze von CPU-Konfigurationssignalen zu übersetzen, die sequentiell über mehrere Taktimpulse angelegt werden. In einigen Fällen ist der Speicher, in dem das Mikroprogramm gespeichert ist, überschreibbar, so dass die Art und Weise geändert werden kann, in der die CPU Befehle decodiert.

Quelle Zentraleinheit

DavidPostill
quelle
Vielen Dank. Meinst du, dass du denkst, dass funktionale Einheit und Ausführungseinheit dasselbe sind wie im Buch? (Beachten Sie, dass ich nicht sicher bin, ob Ausführungseinheit und Ausführungseinheit identisch sind). was ist mit Steuerlogik?
Tim,
1
Ich habe keine Ahnung, wie ich das Buch noch nie gelesen habe. Wie ich bereits sagte, klingt es nicht nach einem sehr guten Buch, wenn solche Konzepte unbestimmt
bleiben
1
@Tim Was hat das Herkunftsland mit dem Inhalt des Buches zu tun? Das Buch gilt als das Standardwerk für Betriebssysteme. Haben Sie auch en.wikipedia.org/wiki/Control_unit gelesen, wo deutlich steht: "Die CU ... decodiert diese ... Anweisung ... holt Adressen / Daten aus Registern / Speicher" . Sie sollten das vorliegende Material wirklich sorgfältig lesen. Ich mache mir große Sorgen um Ihre neuesten Fragen, die alle den gleichen Mangel an Forschungsaufwand aufweisen.
Slhck
@slhck: Meine Fragen sind mehr als Sie dachten. Der Text besagt, dass superskalare Architekturen die Funktionseinheiten replizieren, während Multithreading nicht nur die Funktionseinheiten, sondern auch die Steuerlogik repliziert. (1) Aber in Abbildung 1.7 (b) hat der Superskalar neben mehreren Ausführungseinheiten auch mehrere Abruf- und Dekodiereinheiten. Daher bin ich mir nicht sicher, ob "Steuerlogik == Abruf- und Dekodiereinheiten" und "Funktionseinheit == Ausführungseinheit" .
Tim
(2) Auch beim Multithreading bedeutet der Text tatsächlich Zeitmultiplex. Warum ist es für das Zeitmultiplex notwendig, die Steuerlogik zu replizieren? Können sich nicht mehrere Threads zu unterschiedlichen Zeiten die gleichen Steuereinheiten teilen (Abrufeinheit und Dekodiereinheit)?
Tim,
1

Diagramm

Funktionseinheiten der CPU

  1. Informationen aus dem RAM werden über die BIU gesendet, die eine Kopie erstellt und an den L2-Cache sendet.

  2. Die BIU bestimmt, ob die Informationen Daten oder Anweisungen sind. und sendet es an den entsprechenden L1-Cache.

  3. Die CU holt den Befehl aus dem Befehls-Cache und zerlegt ihn in Mikrobefehle, bevor er an die Ausführungseinheit geliefert wird.

  4. 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.

Mzeroes
quelle
Bitte editieren ich bin neu bei stackoverflow! :)
Mzeroes