Mindmap-Galerie Kapitel 5 Zentraleinheit
Dies ist eine Mindmap zu Kapitel 5 der Zentraleinheit, die die Funktionen und Grundstruktur der CPU, den Befehlsausführungsprozess, die Funktionen und Grundstruktur des Datenpfads und andere Wissenspunkte zusammenfasst.
Bearbeitet um 2024-01-16 15:53:05Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Kapitel 5 Zentraleinheit
CPU
CPU-Funktionen und Grundstruktur
CPU-Funktionen
Komposition
Operator
Die Aufgabe des Betreibers besteht in der Datenverarbeitung.
Regler
Die Funktion des Controllers besteht darin, die Befehlsfolge für jede Komponente des Computers zu koordinieren und zu steuern, um das Programm auszuführen, einschließlich des Abrufens von Anweisungen, des Analysierens von Anweisungen und des Ausführens von Anweisungen.
Spezifische Funktionen
Befehlssteuerung
Betriebskontrolle
Zeitkontrolle
Datenverarbeitung
Unterbrechungsbehandlung
Grundstruktur der CPU
Operator
Arithmetik-Logikeinheit
Notizblock
Akkumulationsregister
Universeller Registersatz
Programmstatuswortregister
Schalthebel
Schalter
Regler
Programm zähler
Befehlsregister
Befehlsdecoder
Speicheradressregister
Speicherdatenregister
Zeitmesssystem
Mikro-Betriebssignalgenerator
Befehlsausführungsprozess
Unterrichtszyklus
Es gibt CPU-Zugriffsoperationen
Der Abrufzyklus dient zum Abrufen von Anweisungen
Der indirekte Adresszyklus besteht darin, die effektive Adresse (Operand) zu erhalten.
Der Ausführungszyklus besteht darin, den Operanden zu erhalten
Der Interrupt-Zyklus dient dazu, Programm-Haltepunkte zu speichern
Datenfluss im Befehlszyklus
Abrufzyklus
PC → MAR → Adressbus → Hauptspeicher CU gibt Lesebefehl → Steuerbus → Hauptspeicher aus Hauptspeicher → Datenbus → MDR → IR (Speicheranweisungen) CU sendet ein Steuersignal → PC-Inhalt erhöht sich um 1
Die Aufgabe des Abrufzyklus besteht darin, basierend auf den Inhalten des PCs den Befehlscode aus dem Hauptspeicher abzurufen und im IR zu speichern.
indirekter Adresszyklus
Ad(IR)(oder MDR) → MAR → Adressbus → Hauptspeicher CU gibt Lesebefehl → Steuerbus → Hauptspeicher aus Hauptspeicher → Datenbus → MDR (speicherwirksame Adresse)
Die Aufgabe des indirekten Adresszyklus besteht darin, die effektive Adresse des Operanden zu ermitteln.
Ausführungszyklus
Die Aufgabe des Ausführungszyklus besteht darin, den Operanden zu nehmen und das Ausführungsergebnis durch die ALU-Operation gemäß dem Opcode des Befehlsworts im IR zu generieren.
Unterbrechungszyklus
CU steuert die Dekrementierung von SP um 1, SP → MAR → Adressbus → Hauptspeicher CU gibt Schreibbefehl → Steuerbus → Hauptspeicher aus PC → MDR → Datenbus → Hauptspeicher (Programmhaltepunkte werden im Hauptspeicher abgelegt) CU (Eingabeadresse der Interrupt-Serviceroutine) → PC
Die CU sendet die spezielle Adresse des Speichers, der zum Speichern des Programmhaltepunkts verwendet wird (z. B. den Inhalt des Stapelzeigers), an den MAR und sendet sie an den Adressbus. Anschließend sendet die CU einen Schreibbefehl an den Speicher und sendet den Inhalt vom PC (Programm-Haltepunkt) zum MAR zum MDR und schließlich wird der Programm-Haltepunkt über den Datenbus im Speicher abgelegt. Darüber hinaus muss die CU auch die Populationsadresse des Interrupt-Service-Programms an den PC senden, um sich auf den Befehlsabrufzyklus des nächsten Befehlszyklus vorzubereiten.
Die Aufgabe des Interrupt-Zyklus besteht darin, Interrupt-Anfragen zu bearbeiten.
Dreidrahtiger (Datenbus, Adressbus, Steuerbus) PC
Anweisungsausführungsplan
einzelner Befehlszyklus
mehrere Befehlszyklen
Pipeline-Lösung
Datenpfadfunktionen und Grundstruktur
Datenpfadfunktionen
Die Funktion des Datenpfads besteht darin, den Datenaustausch zwischen den Recheneinheiten und Registern innerhalb der CPU zu realisieren.
Grundstruktur des Datenpfads
Grundstruktur
Datenpfad der Busstruktur
CPU-interner Einzelbusmodus
Es kann immer nur eine Komponente gleichzeitig Daten senden, sonst kommt es zu Signalkonflikten. Die Lösung lautet: Alle Komponentenausgänge (und die zum Bus oder in andere Richtungen führen, aber mit Signalkonflikten) müssen über Tri-State-Gates mit dem Bus verbunden werden, mit Ausnahme von Komponenten mit eigener Tri-State-Ausgangsfunktion.
Da der Ausgang einer kombinatorischen Logikkomponente nur von ihrem Eingang abhängt, können die Eingangs- und Ausgangsanschlüsse der kombinatorischen Logikkomponente nicht an denselben Bus angeschlossen werden, da es sonst zu Signalkonflikten kommt. Die erste Lösung besteht darin, ein Register (oder Latch) hinzuzufügen, sodass nur einer der Eingangs- und Ausgangsanschlüsse direkt mit demselben Bus verbunden ist. Die zweite Lösung besteht darin, die Anzahl der Busse zu erhöhen, sodass jeder Eingangs- und Ausgangsanschluss mit einem anderen Bus verbunden ist.
A, B und F können nicht mit demselben Bus verbunden werden, daher sind zwei zusätzliche Register (oder Latches) erforderlich, oder es wird eine Drei-Bus-Struktur übernommen, oder es wird eine Dual-Bus-Struktur übernommen und ein Register hinzugefügt.
Die durch das Hinzufügen von Registern und Drei-Zustands-Gattern gelösten Widersprüche sind unterschiedlich. Tri-State-Gates konzentrieren sich auf die Lösung von Konflikten auf dem Bus, und Register konzentrieren sich auf die Lösung von Konflikten auf kombinatorischen Logikkomponenten.
CPU-interner Multi-Bus-Modus
Dedizierter Datenpfadansatz
Da derselbe Eingangsanschluss mit mehreren Komponentenausgangsanschlüssen verbunden ist, muss jeder Eingangsanschluss der Komponente über einen Multiplexer mit einem anderen Komponentenausgangsanschluss verbunden werden, um gleichzeitig Daten von nur einem Komponentenausgangsanschluss zu empfangen Der Eingangsanschluss ist nur mit einem Komponentenausgangsanschluss verbunden, außer wenn der Komponentenausgang angeschlossen ist.
Da es keine Ausgabekonflikte gibt, können GPRs zwei Leseports einrichten, um die Datenübertragungsleistung zu verbessern.
Datenübertragung zwischen Registern
(PC)→MAR PCout und MARin sind gültig, PC-Inhalt→MAR
Datenübertragung zwischen Hauptspeicher und CPU
(PC)→MAR PCout und MARin sind gültig, die aktuelle Befehlsadresse→MAR 1→R CU sendet Lesebefehl MEM(MAR)→MDR MDRin ist gültig (MDR)→IR MDRout und IRin sind gültig, der aktuelle Befehl→IR
Führen Sie arithmetische oder logische Operationen durch
(MDR)→MAR MDRout und MARin sind gültig, die effektive Operandenadresse→MAR 1→R CU sendet Lesebefehl MEM(MAR)→MDR Operand aus dem Speicher→MDR (MDR)→Y MDRout und Yin sind gültig, Operand Y (ACC) (Y)→Z ACCout und ALUin sind gültig, CU sendet einen Add-Befehl an ALU, das Ergebnis→Z (Z)→ACC Zout und ACCin sind gültig, das Ergebnis→ACC
Die zur Analyse der Befehlsphase erforderliche Funktionskomponente ist der Befehlsdecoder, gehört jedoch nicht zum Datenpfad.
Datenpfad einer Einzelbusstruktur
Aufgrund der Single-Bus-Struktur verwendet die Recheneinheit ALU in der Abbildung zwei temporäre Register X und Z. wobei X zum Bereitstellen des ALU-Operanden A verwendet wird. Der andere Operand B der ALU kommt vom internen Bus. Z wird zum vorübergehenden Speichern von Operationsergebnissen verwendet.
Das PSW-Register ist ein Programmstatusregister, das zum Speichern der Betriebsstatusflags der ALU verwendet wird, und die temporären Statusflags werden an den Betriebscontroller gesendet.
PC-, AR-, DR-, IR-, X-, Z-Register und Registerdatei-Register sind direkt mit dem internen Bus verbunden. Darüber hinaus sind die AR- und DR-Register auch über den externen Bus mit dem Speicher MEM verbunden.
In einer Busstruktur hängt die Anzahl der gleichzeitig stattfindenden Datenübertragungen von der Anzahl der Busse ab. Bei einer Einzelbusstruktur können mehrere Module gleichzeitig Daten auf dem Bus empfangen, aber nur ein Modul kann zu einem bestimmten Zeitpunkt Daten an den Bus senden, da es sonst zu Datenkonflikten kommt.
Daher benötigen an den Bus angeschlossene Komponenten eine Ausgangssteuerung, um Datenkonflikte auf dem Bus zu verhindern. Aus diesem Grund verwenden alle Funktionskomponenten, die in der Abbildung an den Einwärtsbus ausgeben, Drei-Zustands-Gatter zur Ausgangssteuerung (in der Abbildung durch dreieckige Hohlpfeile angezeigt).
Steuersignale und ihre Funktionen
Typische MIPS32-Anweisungen
Ausführungsprozess der LW-Anweisung
Die Funktion des LW-Befehls besteht darin, ein 32-Bit-Speicherwort aus dem Hauptspeicher zu lesen. Der Assemblercode lautet lw rt, imm (rs).
Die Speicherzugriffsadresse ist das Register, das dem RS-Feld entspricht, plus dem 16-Bit-Impuls-IMM. Bei dieser typischen indizierten Adressierung werden 4 Bytes aus der entsprechenden Hauptspeichereinheit entnommen und zur Speicherung an das RT-Register gesendet.
Da die Bitbreite des Registers 32 Bit beträgt, muss das Vorzeichen des 16-Bit-Direkt-IMM auf 32 Bit erweitert werden, bevor es an die ALU gesendet werden kann, um die Speicherzugriffsadresse zu berechnen.
LW-Befehlsbetriebsprozess und Steuersignale
Die Operation des Abrufzyklus T3-Beat M[AR] → DR kann auch in T2-Beat platziert werden, und die beiden Funktionen sind äquivalent. Jedes M[AR] → DR kann von einer On-Chip-Busübertragungstransaktion begleitet werden, um die Befehlsausführungsgeschwindigkeit zu verbessern.
Ausführungsablauf des SW-Befehls
Die Funktion des SW-Befehls besteht darin, ein 32-Bit-Speicherwort in den Hauptspeicher zu schreiben. Der Assemblercode lautet sw rt,imm(rs).
SW-Befehlsbetriebsprozess und Steuersignale
Ausführungsablauf der beq-Anweisung
Die beq-Anweisung ist eine bedingte Verzweigungsanweisung und der Assemblercode lautet beq rs,rt,imm. Die Funktion des beq-Befehls besteht darin, die Werte der Register rs und rt zu vergleichen und einen Verzweigungssprung durchzuführen, wenn sie gleich sind.
Der Wert von imm gibt die Verzweigungszieladresse relativ zur nächsten Anweisung an, d Das Vorzeichen von imm sollte auf 32 Bit erweitert und dann nach links verschoben werden. Die um zwei Bits verschobenen Werte werden addiert. Der Zweck der Verschiebung um zwei Bits nach links besteht darin, den Byte-Offset zu berechnen.
BEQ-Anweisung, Betriebsprozess und Steuersignale
Datenpfadkomponenten
Betriebskomponenten (kombinatorische Logikschaltungen)
Datenverarbeitungseinheit
Die Datenverarbeitungseinheit besteht aus kombinatorischen Logikschaltungen, deren Ausgang sich nur auf den aktuellen Eingang bezieht und für die Verarbeitung von Daten verantwortlich ist, wie z. B. ALU, Vorzeichenerweiterungseinheit, Decoder usw.
Zustandskomponenten (sequentielle Logikschaltungen)
staatliche Speichereinheit
Zustandsspeichereinheit (Zustandseinheit) bezieht sich auf eine Einheit mit Speicherfunktion, wie z. B. Speicher und Register.
Typischer Datenpfad eines Einzelzyklusprozessors
Ein Single-Cycle-MIPS-Prozessor ist ein MIPS-Prozessor, bei dem alle Befehle in einem Taktzyklus ausgeführt werden.
Obwohl die Ausführungszeit verschiedener Befehle variieren kann, wird der Taktzyklus eines Single-Cycle-Prozessors basierend auf dem Barrel-Prinzip durch den Befehl bestimmt, der am langsamsten ausgeführt wird.
Da das Abrufen und Ausführen von Anweisungen nur innerhalb eines Taktzyklus abgeschlossen werden kann, können Ressourcen im Datenpfad während der Befehlsausführung nicht wiederverwendet werden. Es sollten dedizierte Datenpfade und Ressourcen sein, die mehrfach verwendet werden müssen (z. B. Addierer). müssen mehrere einstellen.
Sowohl Befehlsabruf- als auch Operandenabrufvorgänge erfordern Speicherzugriff, daher werden Befehle und Daten im Befehlsspeicher bzw. Datenspeicher gespeichert, um Ressourcenkonflikte zu vermeiden.
Da der Single-Cycle-MIPS-Prozessor den Befehl innerhalb eines Taktzyklus abschließen muss, wird das Befehlsregister IR nicht gesetzt, sondern das aus dem Befehlsspeicher abgerufene Befehlswort wird direkt analysiert. Andernfalls ist nur das Abrufen des Befehls in den IR erforderlich Zyklus.
Datenpfad für arithmetische Anweisungen vom Typ R
Die arithmetischen und logischen Operationsanweisungen in MIPS sind Anweisungen vom Typ R. Im Folgenden wird die Additionsanweisung als Beispiel verwendet. rd,rs,rt hinzufügen #RTL-Funktionsbeschreibung: R[rs] R[rt] → R[rd]
Zu den Funktionskomponenten, die an der Ausführung von Anweisungen beteiligt sind, gehören hauptsächlich die Registerdatei und ALU. Es müssen lediglich die Quellregisterfelder rs und rt im aus dem Befehlsspeicher gelesenen Befehlswort an die beiden Leseregisternummernanschlüsse R1# und R2# der Registerdatei gesendet werden und das Zielregisterfeld rd an das Schreibregister gesendet werden Der Wert der beiden aus der Registerdatei gelesenen Quellregister wird über die Ports R1 und R2 an die Recheneinheit ausgegeben ALU führt die entsprechende Operation aus (hier sollte Addition ausgewählt werden). Das Ergebnis wird an den Schreibdatenport WD der Registerdatei gesendet. Wenn die steigende Flanke des Takts eintrifft, wird das Operationsergebnis in das Zielregister rd geschrieben.
Datenpfad für den Speicherzugriffsbefehl vom Typ I
MIPS-Speicherzugriffsanweisungen gehören zu Typ-I-Anweisungen, einschließlich des Abrufens und Speicherns von Daten, am Beispiel von Wortzugriffsanweisungen. lw rt,imm16(rs) #RTL-Funktionsbeschreibung:M[R[rs] SignExt(imm16)] → R[rt] sw rt,imm16(rs) #RTL-Funktionsbeschreibung: R[rt] → M[R[rs] SignExt(imm16)]
Das rs-Feld im Befehlswort wird weiterhin an das R1#-Ende der Registerdatei gesendet; das Zielregisterfeld rt wird zusätzlich an die 16-Bit-Direktzahl imm16 an das Schreibregisternummernende W# gesendet muss über die Vorzeichenerweiterungseinheit in 32 Bit umgewandelt werden. Dann wird es an die ALU gesendet und zum Wert des Indexregisters rs addiert, um die endgültige Zugriffsadresse zu bilden. Anschließend werden die Daten im Datenspeicher gelesen und an die gesendet Registerdatei-Schreibdatenport WD.
Senden Sie die Felder rs und rt im Befehlswort an die Enden R1# und R2# der Registerdatei. Konvertieren Sie die 16-Bit-Sofortdaten über die Vorzeichenerweiterungseinheit in 32 Bit, senden Sie sie an die ALU und fügen Sie sie hinzu der Wert des Indexregisters rs Bilden Sie die endgültige Hauptspeicheradresse; senden Sie den aus der Registerdatei gelesenen Wert des RT-Registers an den Datenspeicher-Schreibdatenport WD.
Controllerfunktionen und Arbeitsprinzip
Controller-Struktur und Funktion
Die Hauptfunktion
Rufen Sie eine Anweisung aus dem Hauptspeicher ab und geben Sie den Speicherort der nächsten Anweisung im Hauptspeicher an.
Dekodieren oder testen Sie die Anweisungen und generieren Sie entsprechende Betriebssteuersignale, um bestimmte Aktionen einzuleiten.
Leitet und steuert die Richtung des Datenflusses zwischen CPU, Hauptspeicher sowie Eingabe- und Ausgabegeräten.
festverdrahteter Controller
Diagramm der festverdrahteten Steuereinheit
CU-Eingangssignalquelle
Die durch die Dekodierung des Befehlsdecoders erzeugten Befehlsinformationen.
Von Zeitmesssystemen erzeugte Maschinenperiodensignale und Schwebungssignale.
Die Rückmeldungsinformation von der Ausführungseinheit ist das Flag.
Steuersignale vom Systembus (Steuerbus), wie z. B. Interrupt-Anfragen und DMA-Anfragen.
Zeitsystem und Mikrooperationen für festverdrahtete Controller
Zeitmesssystem
Taktzyklus
Die Breite jedes Schlags entspricht genau einem Taktzyklus.
Maschinenzyklus
Der Maschinenzyklus kann als Basiszeit während der Ausführung aller Anweisungen betrachtet werden.
Als Maschinenzyklus wird die kürzeste Zeit zum Lesen eines Befehlswortes aus dem Speicher angesehen.
In einem Maschinenzyklus können mehrere Mikrooperationen ausgeführt werden. Jede Mikrooperation benötigt eine bestimmte Zeit. Das Taktsignal kann zur Steuerung der Generierung jedes Mikrooperationsbefehls verwendet werden.
Unterrichtszyklus
Die Zeit, die die CPU benötigt, um einen Befehl aus dem Hauptspeicher abzurufen und auszuführen, wird als Befehlszyklus bezeichnet.
Befehlszyklen werden häufig durch mehrere Maschinenzyklen dargestellt, und ein Maschinenzyklus enthält mehrere Taktzyklen (auch Beats oder T-Zyklen genannt, die die grundlegendste Einheit des CPU-Betriebs darstellen).
Die Anzahl der Maschinenzyklen in jedem Befehlszyklus kann variieren, und auch die Anzahl der Schläge in jedem Maschinenzyklus kann variieren.
Atomare Operationen beziehen sich auf Operationen, die nicht verfeinert werden können. Normalerweise werden die atomaren Operationen innerhalb der CPU als Mikrooperationen (μOP) bezeichnet, und die Komponentensteuersignale, die μOP implementieren, werden als Mikrooperationssteuersignale bezeichnet, auch Mikrooperationsbefehle genannt. μOPCmd).
Analyse von Mikrooperationsbefehlen
Mikrooperationsbefehle im Abrufzyklus
Mikrooperationsbefehle für indirekte Adresszyklen
Führen Sie regelmäßig Mikrooperationsbefehle aus
Anweisungen für den Nicht-Speicherzugriff
Anweisungen zum Speicherzugriff
Transferanweisung
CPU-Steuerungsmethode
Synchrone Steuermethode
Kann in die folgenden Typen unterteilt werden
Befehlszyklus mit fester Länge
Die Anzahl der Maschinenzyklen ist festgelegt, die Anzahl der Schläge jedoch nicht
Kombinierte zentrale und lokale Steuerung
Die Zeitbeziehung der synchronen Steuerung ist relativ einfach und das Controller-Design praktisch, bei Verwendung langsamer Komponenten besteht jedoch das Problem einer geringen CPU-Effizienz.
Asynchroner Steuermodus
Das Timing jeder Funktionskomponente und Operation wird mithilfe eines Antwortmechanismus implementiert. Nachdem die Steuerkomponente ein Operationssteuersignal an die Funktionskomponente gesendet hat, muss sie warten, bis die Funktionskomponente ein Antwortsignal sendet, bevor sie die nächste Operation startet.
Der Vorteil besteht darin, dass jede Komponente gemäß ihrer tatsächlich benötigten Zeit arbeiten kann und kein Prozess stattfindet, bei dem die schnelle Komponente auf die langsame wartet, wodurch die Geschwindigkeit des Systems verbessert wird. Die Struktur der asynchronen Steuerungsmethode ist jedoch komplizierter.
gemeinsame Kontrollmethode
Die meisten Betriebssteuerungsabläufe werden synchron mithilfe von Maschinenzyklen und Schwebungspotentialen gesteuert. Für eine kleine Anzahl von Vorgängen, die zu einem bestimmten Zeitpunkt schwer zu bestimmen sind, kann die asynchrone Steuerung verwendet werden.
Schritte zum Entwurf einer festverdrahteten Steuereinheit
mikroprogrammierter Controller
Grundkonzepte der Mikroprogrammsteuerung
Die Entwurfsidee besteht darin, jede Maschinenanweisung in ein Mikroprogramm zu schreiben. Jedes Mikroprogramm enthält mehrere Mikroanweisungen, und jede Mikroanweisung entspricht einem oder mehreren Mikrooperationsbefehlen.
Grundbegriffe
Mikrobefehle und Mikrooperationen
Eine Maschinenanweisung kann in eine Folge von Mikrooperationen zerlegt werden. Diese Mikrooperationen sind die grundlegendsten und irreduzibelsten Operationen im Computer.
Die verschiedenen Steuerbefehle, die von der Steuerkomponente an die Ausführungskomponente ausgegeben werden, werden als Mikrobefehle bezeichnet. Dabei handelt es sich um die kleinsten Einheiten, aus denen eine Steuersequenz besteht.
Mikrobefehle und Mikrooperationen haben eine Eins-zu-eins-Entsprechung. Mikrobefehle sind die Steuersignale von Mikrooperationen, und Mikrooperationen sind die Ausführungsprozesse von Mikrobefehlen.
Mikroanweisungen und Mikrozyklen
Mikroanweisungen
Felder zur Betriebssteuerung
Sequenzkontrollfeld
Unter Mikrozyklus versteht man die Zeit, die zur Ausführung eines Mikrobefehls benötigt wird, normalerweise ein Taktzyklus.
Mikroanweisungen steuern die Ausführung eines entsprechenden Satzes von Mikrooperationen, um einen Teil der Funktionen einer Anweisung zu realisieren.
Hauptspeicher und Steuerspeicher
Der Hauptspeicher dient zum Speichern von Programmen und Daten und wird außerhalb der CPU mithilfe von RAM implementiert.
Der Steuerspeicher (CM) dient zum Speichern von Mikroprogrammen, die mithilfe von ROM in der CPU implementiert werden.
Programme und Mikroprogramme
Ein Programm ist eine geordnete Sammlung von Anweisungen.
Die Funktion einer Anweisung wird durch ein Mikroprogramm umgesetzt.
Ein Mikroprogramm entspricht einer μOPCmd-Sequenz, ein Mikrobefehl entspricht allen μOPCmds in einem Schritt der μOPCmd-Sequenz und ein Mikrobefehl entspricht einem μOPCmd.
Jedes Mikroprogramm besteht aus mehreren Mikroanweisungen
Jeder Mikrobefehl entspricht einem Satz von μOPCmd
Mikrobefehle verweisen auf Steuersignale, die von Komponenten gesendet werden und μOPCmd eins zu eins entsprechen
Aufbau und Arbeitsablauf mikroprogrammierter Steuerungen
Grundkomponenten der mikroprogrammierten Steuerung
Steuerspeicher
Speichern Sie das Mikroprogramm, das jeder Anweisung entspricht.
Mikrobefehlsregister
Es wird zum Speichern von Mikrobefehlen verwendet, die vom CM abgerufen werden. Seine Anzahl an Bits entspricht der Wortlänge des Mikrobefehls.
Mikroadressregister
Empfangen Sie die von der Mikroadressenbildungskomponente gesendete Mikroadresse, um das Lesen der Mikroanweisungen im CM vorzubereiten.
Der Arbeitsprozess eines mikroprogrammierten Controllers
Beachten Sie, dass das untere Adressfeld des letzten Mikrobefehls eines Mikroprogramms normalerweise auf die Eingangsadresse des Befehlsabruf-Mikroprogramms verweist, um sicherzustellen, dass die Befehlsabrufphase nach der Ausführung des Befehls erneut betreten werden kann.
Mikroprogramme und Maschinenanweisungen
Die Anzahl der Mikroprogramme sollte der Anzahl der Maschinenbefehle plus der Anzahl der öffentlichen Mikroprogramme entsprechen, die dem Befehlsabruf, der indirekten Adressierung und den Interrupt-Zyklen entsprechen.
Wie Mikroanweisungen kodiert werden
Direkte Kodierungsmethode (direkte Steuerung).
Jeder stellt einen Mikrobefehl dar.
Felddirektkodierungsmethode
Gruppieren Sie sich gegenseitig ausschließende Mikrobefehle im selben Feld und gruppieren Sie kompatible Mikrobefehle in verschiedenen Feldern. Daher gibt es unter den durch jedes Unterfeld definierten Mikrobefehlen höchstens gleichzeitig einen gültigen Mikrobefehl.
Jedes Feld ist unabhängig codiert, jeder Code stellt einen Mikrobefehl dar und die Bedeutung jedes Feldcodes wird separat definiert.
Mikrobefehle müssen nach dem Durchlaufen der Decodierungsschaltung ausgegeben werden, daher ist sie langsamer als die direkte Codierungsmethode.
Das Worst-Case-Szenario für die Felddirektkodierung ist die Direktkodierungsmethode.
Methode zur indirekten Kodierung von Feldern
Bestimmte Mikrobefehle in einem Feld müssen von bestimmten Mikrobefehlen in einem anderen Feld interpretiert werden.
Unter den drei Kodierungsmethoden weist die direkte Kodierungsmethode das längste Operationssteuerfeld und die einfachste μOP-Steuersignalbildung auf. Die indirekte Feldkodierungsmethode weist das kürzeste Operationssteuerfeld auf und die μOP-Steuersignalbildung ist die komplexeste Methode ist ein Kompromiss zwischen beiden.
Die Adressbildungsmethode von Mikroanweisungen
Wird direkt durch das untere Adressfeld des Mikrobefehls angezeigt.
Opcodes werden basierend auf Maschinenanweisungen gebildet.
Mikrobefehlsformat
horizontale Mikroanweisungen
Ein horizontaler Mikrobefehl definiert und führt mehrere grundlegende parallele Operationen aus.
vertikale Mikroanweisungen
Eine vertikale Mikroanweisung kann nur eine Grundoperation definieren und ausführen.
Hybride Mikroanweisungen
Entwurfsschritte der Mikroprogramm-Steuereinheit
Listen Sie alle μOPCmd-Sequenzen auf
Entwerfen Sie ein Mikroanweisungsformat
Mikroprogramm kompilieren
Entwerfen Sie verwandte Schaltungen
Dynamische Mikroprogrammierung und Nanoprogrammierung
Wenn das Mikroprogramm entsprechend den Anforderungen des Benutzers geändert werden kann, verfügt die Maschine über dynamische Mikroprogrammierfunktionen.
Wenn die Hardware nicht direkt durch Mikroprogramme gesteuert wird, sondern durch Nanoprogramme interpretiert wird, die im Steuerspeicher der zweiten Ebene gespeichert sind, wird dieser Steuerspeicher der zweiten Ebene als Nanospeicher bezeichnet und die Hardware wird direkt durch Femto-Anweisungen gesteuert.
Merkmale festverdrahteter und programmierbarer Steuerungen
Ausnahme- und Unterbrechungsmechanismus
Grundkonzepte von Ausnahmen und Interrupts
Unerwartete Ereignisse, die intern von der CPU generiert werden, werden als Ausnahmen bezeichnet.
Eine Interrupt-Anfrage, die von einem Gerät außerhalb der CPU an die CPU gesendet wird, wird als Interrupt bezeichnet.
Klassifizierung von Ausnahmen und Interrupts
Abnormale Klassifizierung
Fehler
Fangen
Traps werden normalerweise am Ende der Befehlsausführung erkannt, und sobald ein Trap erkannt wird, erfolgt die Ausnahmebehandlung sofort.
Systemaufrufanweisungen und bedingte Selbst-Trap-Anweisungen (wie teq, teqi, tme, tnei usw. in MIPS) sind alle Trap-Anweisungen.
Im Einzelschritt-Debugging-Modus kann jede gewöhnliche Anweisung als Trap-Anweisung zum Generieren einer Trap-Ausnahme verwendet werden. Ähnlich wie bei einem Funktionsaufruf gibt es keinen Programm-Haltepunkt Anweisungen führen dazu, dass das Kernelprogramm des Betriebssystems bedingungslos oder bedingt aufgerufen und ausgeführt wird. Nach Abschluss der Ausführung kehrt es zur nächsten Anweisung der Selbst-Trap-Anweisung zur Ausführung zurück. (Wenn es sich bei der Trap-Anweisung um eine Verzweigungsanweisung handelt, kehrt sie zur Ausführung nicht zur nächsten Anweisung zurück, sondern zur Ausführung zur Verzweigungszielanweisung.)
Abbrechen
Ein zufälliger Hardwarefehler, der die weitere Ausführung der CPU verhindert, hat nichts mit bestimmten Anweisungen zu tun.
Die Erkennung interner Anomalien wird durch die interne Logik der CPU implementiert. Es ist nicht erforderlich, die CPU über ein externes Signal zu benachrichtigen.
Klassifizierung von Interrupts
Maskierbarer Interrupt
Wenn Interrupts ausgeschaltet sind, können maskierbare Interrupts keine Antwort von der CPU erhalten.
nicht maskierbarer Interrupt
Auf nicht maskierbare Interrupts muss auch im Interrupt-Off-Modus reagiert werden.
Ausnahme- und Interrupt-Reaktionsprozess
Schalten Sie Interrupts aus
Haltepunkte und Programmstatus speichern
Identifizieren Sie Ausnahmen und Unterbrechungen und gehen Sie zu den entsprechenden Handlern
Anweisungspipeline
Grundkonzepte der Instruktionspipeline
Verbesserung der Prozessorparallelität aus zwei Aspekten
zeitliche Parallelität
Fließbandtechnik
räumliche Parallelität
superskalarer Prozessor
Definition der Anweisungspipeline
Der Ausführungsprozess von Anweisungen
holen(WENN)
Holen Sie sich Anweisungen aus dem Befehlsspeicher oder Cache
Dekodier-/Leseregister (D)
Der Operationscontroller dekodiert den Befehl und ruft die Operanden aus der Registerdatei ab.
Ausführungs-/Berechnungsadresse (EX)
Speicherzugriff (MEM)
Lese- und Schreibspeicher
Zurückschreiben (WB)
Schreiben Sie die Ergebnisse der Befehlsausführung zurück in die Registerdatei
Das Prinzip des Pipeline-Designs besteht darin, dass die Anzahl der Befehls-Pipeline-Segmente auf der Anzahl der Funktionssegmente basiert, die von den komplexesten Befehlen verwendet werden.
So drücken Sie die Pipeline aus
Grundlegende Implementierung der Pipeline
Durch die Einführung von Pipeline-Registern können Anweisungen in jedem Segment zeitlich parallelisiert werden.
Pipeline-Datenpfad
Fügen Sie an der gestrichelten Position in der Abbildung eine lange Pipeline-Registerkomponente hinzu.
Beachten Sie, dass sich hinter dem WB-Segment keine Pipeline-Register befinden, die Daten in diesem Segment jedoch schließlich in die Registerdatei zurückgeschrieben werden. Der Programmzähler-PC kann auch als Pipeline-Register betrachtet werden, das Daten zum Abrufen von IF-Segmentbefehlen bereitstellt.
Die Registerdatei im ID-Segment ist eine relativ spezielle Funktionskomponente. Sie ist für das Lesen von Registeroperanden im ID-Segment verantwortlich. Die Leseoperation gehört zur kombinatorischen Logik. Gleichzeitig ist die Registerdatei des ID-Segments auch für den Rückschreibvorgang der Befehlsausführungsergebnisse des WB-Segments verantwortlich. Der Schreibvorgang erfordert die Zusammenarbeit mit der Uhr und ist eine sequentielle Logik.
Die Eingabequelle des W#-Ports zum Schreiben der Registerdatei wird vom RegDst-Signalsteuerungsmultiplexer gemäß dem Befehlswort des ID-Segments ausgewählt, während die Schreibdaten WD aus dem WB-Segment stammen, dh der Schreibadresse und dem Schreiben Daten gehören zu verschiedenen Anweisungen, was zu Datenverwirrung führen kann.
Passen Sie zunächst die Ausgabeposition der vom ID-Segment-Multiplexer ausgegebenen Schreibregisternummer WriteReg# an. Sie wird nicht mehr an das W#-Ende der Registerdatei gesendet, sondern zur Verriegelung direkt an das ID/EX-Pipeline-Register gesendet Segment für Segment wird es an das WB-Segment übergeben; schließlich gibt es das MEM/WB-Pipeline-Register des WB-Segments an den Schreibregisternummer-W#-Port der Registerdatei zurück. Beachten Sie in der Abbildung, dass der Multiplexer für das ID-Segment leicht neu positioniert wurde.
Die von verschiedenen Pipeline-Register-Latches übertragenen Dateninformationen sind nicht gleich.
Das IF/ID-Pipeline-Register muss das aus dem Befehlsspeicher abgerufene Befehlswort und den Wert von PC 4 zwischenspeichern.
Das ID/EX-Pipeline-Register muss die beiden aus der Registerdatei entnommenen Operanden RS und RT (die Werte der Register, die den Feldern rs und rt im Befehlswort entsprechen) und die Schreibregisternummer WriteReg# zwischenspeichern sowie den unmittelbar vorzeichenerweiterten Wert, PC 4 und andere Operanden, die später verwendet werden können.
EX/MEM-Pipeline-Register müssen ALU-Operationsergebnisse, in den Datenspeicher WriteData zu schreibende Daten, die Schreibregisternummer WriteReg# und andere Daten zwischenspeichern.
Das MEM/WB-Pipeline-Register muss die ALU-Operationsergebnisse, aus dem Datenspeicher gelesene Daten, die Schreibregisternummer WriteReg# und andere Daten zwischenspeichern.
Pipeline-Steuersignale
Klassifizierung von Steuersignalen
Der Ausführungsprozess der Pipeline (am Beispiel des Schreibbefehls vom Datenspeicher in das Register)
holen(WENN)
Obwohl der lw-Befehl PC 4 in nachfolgenden Funktionsabschnitten nicht verwendet, wird PC 4 dennoch zur Verwendung durch andere Befehle (z. B. beq) in das IF/ID-Pipeline-Register übertragen.
Wenn der Takt eintrifft, wird das Befehlswort im IF/ID-Pipeline-Register zwischengespeichert und PC wird auf den Wert von PC 4 aktualisiert.
Dekodier-/Leseregister (ID)
Im ID-Segment generiert der Operationscontroller die für nachfolgende Segmente erforderlichen Operationssteuersignale basierend auf den Befehlswörtern im IF/ID-Pipeline-Register und überträgt sie rückwärts.
Darüber hinaus liest das ID-Segment auch die Werte RS und RT der RS- und RT-Register in der Registerdatei entsprechend den RS- und RT-Feldern im Befehlswort.
Die Vorzeichenerweiterungseinheit erweitert das 16-Bit-Literal im Befehlswort auf 32 Bit.
Der Multiplexer generiert die mögliche Schreibregisternummer des Befehls WriteReg# basierend auf dem Befehlswort (einige Befehle erfordern kein Schreiben von Registern).
Diese 4 Daten werden zusammen mit der sequentiellen Befehlsadresse PC 4 an das ID/EX-Pipeline-Register übertragen.
Ausführungs-/Berechnungsadresse (EX)
Für den LW-Befehl wird das EX-Segment hauptsächlich zur Berechnung der Speicherzugriffsadresse verwendet. Die Speicherzugriffsadresse, die durch Addition des RS-Werts im ID/EX-Pipeline-Register und des vorzeichenerweiterten Direktwerts erhalten wird, wird an die EX/MEM-Pipeline gesendet registrieren.
Das EX-Segment muss außerdem die Verzweigungszieladresse berechnen und das Verzweigungssprungsignal BranchTaken generieren.
Der Wert von RT im ID/EX-Pipeline-Register wird als Schreibdaten im MEM-Segment verwendet, sodass der Wert von RT als Schreibdaten WriteData an das EX/MEM-Pipeline-Register gesendet wird.
Die Schreibregisternummer WriteReg# im ID/EX-Pipeline-Register wird auch direkt in das EX/MEM-Pipeline-Register übertragen.
Speicherzugriff (MEM) (Lesen oder Schreiben)
Der Speicher wird hauptsächlich auf der Grundlage der im EX/MEM-Pipelineregister zwischengespeicherten ALU-Operationsergebnisse – Speicherzugriffsadresse, Schreibdaten und Speicherlese- und -schreibsteuersignal MemWrite – gelesen oder beschrieben.
Die Ergebnisse der ALU-Operation, WriteReg#, und die aus dem Datenspeicher im EX/MEM-Pipeline-Register gelesenen Daten werden an das Eingangsende des MEM/WB-Pipeline-Registers gesendet.
Zurückschreiben (WB)
Das WB-Segment wählt das ALU-Operationsergebnis oder die Speicherzugriffsdaten aus dem MEM/WB-Pipeline-Register aus und schreibt es zurück in das angegebene Register WriteReg# der Registerdatei.
Jeder Funktionsabschnitt in der Pipeline unterscheidet nicht die Funktion des Befehls. Alle Dateninformationen und Betriebssteuersignale werden vom Pipelineregister am Anfang des Abschnitts ausgegeben, also alle Daten- und Betriebssteuersignale, die von nachfolgenden Funktionsabschnitten verwendet werden können muss rückwärts weitergegeben werden.
Abenteuer und Verarbeitung am Fließband
Struktur-Abenteuer
Konflikte, die dadurch verursacht werden, dass mehrere Anweisungen dieselbe Operationseinheit im selben Taktzyklus verwenden, werden als strukturelle Konflikte bezeichnet.
Die Berechnung von PC 4, die Berechnung der Verzweigungszieladresse und die arithmetische Operation erfordern alle die Verwendung von Recheneinheiten.
Sowohl der Zugriff auf Anweisungen als auch auf Daten erfordert die Verwendung von Speicher.
Es gibt auch strukturelle Konflikte zwischen den Operationen des ID-Segment-Leseregisters und des WB-Segment-Schreibregisters. Da es sich jedoch bei der Lese- und Schreiblogik der MIPS-Registerdatei um eine völlig unabhängige Logik handelt, werden die Lese- und Schreibadressen sowie die Daten über unterschiedliche Ports eingegeben , und die Lese- und Schreiblogik kann gleichzeitig arbeiten. Daher besteht dieser strukturelle Konflikt nicht.
Lösung
Verwenden Sie unabhängige Befehlsspeicher und Datenspeicher.
Blockieren Sie den Programmzähler-PC, wodurch das IF-Segment für einen Taktzyklus angehalten wird. Wenn der nächste Takt eintrifft, wird das IF/ID-Pipeline-Register synchron gelöscht (entspricht einem No-Op). Warten Sie, bis der Ladebefehl auf das IF-Segment zugreift. Nach Abschluss des Speichervorgangs wird das IF-Segment neu gestartet.
Datenabenteuer
Die aktuelle Anweisung muss das Operationsergebnis der vorherigen Anweisung verwenden, dieses Ergebnis wurde jedoch noch nicht generiert oder nicht an den angegebenen Ort übermittelt, was dazu führt, dass die aktuelle Anweisung die Ausführung nicht fortsetzen kann. Dies wird als Daten bezeichnet Konflikt.
Die möglichen Datenkonflikte zwischen den beiden Anweisungen sind wie folgt:
Vor Lesekonflikt schreiben (RAW)
Wenn der Quelloperand der Anweisung I2 der Zieloperand der Anweisung I1 ist, wird dieser Datenkonflikt als Schreib-vor-Lese-Konflikt bezeichnet.
Wenn Befehle im Pipeline-Verfahren ausgeführt werden und Befehl I2 das Ergebnis von Befehl I1 verwendet, führt dies zu einem Datenlesefehler, wenn Befehl I2 den alten Wert des Registers im ID-Segment liest, bevor Befehl I1 das Ergebnis in das Register schreibt .
Lesen-vor-Schreiben-Konflikt (WAR)
Wenn der Zieloperand der Anweisung I2 der Quelloperand der Anweisung I1 ist, wird dieser Datenkonflikt als Lese-vor-Schreib-Konflikt bezeichnet.
Diese Datenabhängigkeit hat keinen Einfluss auf die Ausführung von Anweisungen.
Schreib-nach-Schreib-Konflikt (WAW)
Wenn die Zieloperanden der Befehle I2 und I1 gleich sind, wird dieser Datenkonflikt als Write-after-Write-Konflikt bezeichnet.
Wenn Anweisungen im Pipeline-Verfahren ausgeführt werden, hat dieser Schreib-nach-Schreib-Konflikt keine Auswirkungen auf die Ausführung von Anweisungen.
Die Lösung
Hardware-Störung und Software-Einfügung von „NOP“-Anweisungen
Registrieren Sie die Handhabung von RAW-Abenteuern
Datenbypass-Technologie
Wenn eine Datenkorrelation vorliegt, handelt es sich bei den Registeroperanden RS und RT des EX-Segments um falsche Daten. Die korrekten Daten sollten von den Zieloperanden der MEM- und WB-Segmentanweisungen stammen, und diese Anweisungen haben die Operation über das EX-Segment abgeschlossen.
Mit Ausnahme der Speicherzugriffsanweisungen der Ladeklasse werden die Zieloperanden tatsächlich in den EX/MEM- und MEM/WB-Pipelineregistern gespeichert. Die richtigen Operanden können direkt von ihren Speicherorten an die entsprechenden Speicherorte im EX-Segment umgeleitet werden (Außerdem). wird Bypass genannt).
Es besteht keine Notwendigkeit, Blasen einzufügen, wodurch die meisten datenbezogenen Probleme gelöst, eine Verschlechterung der Pipeline-Leistung durch das Einfügen von Blasen vermieden und die Pipeline-Leistung erheblich optimiert werden können.
Optimierung der Befehlszusammenstellung und Anpassung der Befehlsreihenfolge
Übernimm die Kontrolle über das Abenteuer
Wenn die Pipeline auf eine Verzweigungsanweisung oder andere Anweisungen stößt, die den PC-Wert ändern, gelangen die nach der Verzweigungsanweisung in die Pipeline geladenen benachbarten Anweisungen aufgrund von Verzweigungssprüngen möglicherweise nicht in die Ausführungsphase. Dieser Konflikt wird als Kontrollkonflikt bezeichnet ein Zweig.
Lösung
Führen Sie eine Verzweigungsvorhersage für Übertragungsanweisungen durch und generieren Sie Übertragungszieladressen so früh wie möglich.
Rufen Sie Zielanweisungen sowohl in erfolgreichen als auch in nicht erfolgreichen Kontrollflussrichtungen vorab ab.
Beschleunigen und verbessern Sie die Bildung von Bedingungscodes.
Verbessern Sie die Genauigkeit beim Erraten der Übertragungsrichtung.
Pipeline-Leistungsindikatoren
Pipeline-Durchsatz
Beschleunigung der Pipeline
Fortschrittliche Pipeline-Technologie
Superskalare Pipeline-Technologie
CPI<1
In jedem Taktzyklus können mehrere unabhängige Anweisungen gleichzeitig ausgeführt werden, d. h. zwei oder mehr Anweisungen werden im Parallelbetrieb kompiliert und ausgeführt.
Der Prozessor muss mit mehreren Funktionskomponenten und Befehlsdekodierungsschaltungen sowie mehreren Registeranschlüssen und Bussen ausgestattet sein, damit mehrere Vorgänge gleichzeitig ausgeführt werden können.
Super-Pipeline-Technologie
Je mehr Pipeline-Funktionssegmente unterteilt sind, desto kürzer ist der Taktzyklus und desto höher ist die Befehlsdurchsatzrate. Daher verbessert die Super-Pipeline-Technologie die Pipeline-Leistung, indem sie die Hauptfrequenz der Pipeline erhöht.
Im ursprünglichen Taktzyklus wird die Funktionskomponente dreimal verwendet, wodurch die Pipeline mit der dreifachen ursprünglichen Taktfrequenz läuft.
CPI=1
Sehr lange Anweisungsworttechnologie
Mithilfe einer Architektur, in der mehrere Anweisungen parallel in mehreren Verarbeitungseinheiten verarbeitet werden, können mehrere Anweisungen in einem Taktzyklus ausgegeben werden.
Grundkonzepte von Multiprozessoren
Grundkonzepte von SISD, SIMD und MIMD
Single-Instruction-Stream-Single-Data-Stream-Architektur (SISD).
Single Instruction Multiple Data (SIMD)-Architektur
MISD-Architektur (Multiple Instruction Stream Single Data Stream).
Multiple Instruction Multiple Data (MIMD)-Architektur
Grundkonzepte des Hardware-Multithreadings
Feinkörniges Multithreading
Grobkörniges Multithreading
Gleichzeitiges Multithreading
Grundkonzepte von Mehrkernprozessoren
Grundkonzepte von Shared-Memory-Multiprozessoren
Obwohl sich diese Systeme denselben physischen Adressraum teilen, können sie dennoch Programme unabhängig in ihren eigenen virtuellen Adressräumen ausführen.
zwei Arten
UMA-Multiprozessor (Unified Memory Access).
NUMA-Multiprozessoren (Non-Uniform Memory Access).