Computerorganisation Modul 5
Computerorganisation Modul 5
MODUL-5
Basisverarbeitungseinheit
5.1Einleitung
Der Instruction Set Processor (ISP) oder Prozessor führt Maschinenanweisungen aus und
koordinieren die Aktivitäten anderer Einheiten.
Es wird auch als Zentraleinheit (CPU) bezeichnet. Der Begriff „Zentral“ ist weniger
heute angebracht, da viele moderne Computersysteme mehrere enthalten
Verarbeitungseinheiten.
Die Organisation von Prozessoren hat sich im Laufe der Jahre weiterentwickelt, angetrieben durch Fortschritte in
Technologie und die Notwendigkeit, hohe Leistung zu bieten.
Um hohe Leistung zu erzielen, lassen Sie verschiedene Funktionseinheiten parallel arbeiten.
Solche Hochleistungsprozessoren haben:
Pipelined-Organisation – die Ausführung einer Anweisung wird begonnen, bevor die
Die Ausführung der vorhergehenden Anweisung ist abgeschlossen.
*Superskalarer Betrieb – mehrere Befehle werden abgerufen und ausgeführt bei der
gleiche Zeit.
Hier besprechen wir grundlegende Ideen, die allen Prozessoren gemeinsam sind.
Die Instruktionsdecoder- und Steuerlogik-Einheit ist verantwortlich für die Umsetzung der
Aktionen, die durch die im IR-Register geladenen Anweisungen spezifiziert sind.
Der Decoder erzeugt die Steuersignale, die benötigt werden, um die Register auszuwählen.
involviert und leitet die Übertragung von Daten.
ALU und der verbindende Bus werden als Datenpfad bezeichnet.
Eine Anweisung kann ausgeführt werden, indem eine oder mehrere der folgenden Aktionen durchgeführt werden.
Betriebseingriffe in einer bestimmten Reihenfolge:
Ri Übertragen Sie ein Wort von Daten von einem Prozessorregister in ein anderes oder zu
die ALU.
5.2.1 Registerübertragungen
Die Ausführung von Anweisungen umfasst Datenübertragungen von einem Register zu einem anderen.
Für jedes Register werden 2 Steuersignale verwendet. Es wird symbolisch dargestellt als
wie in Abbildung 7.2 gezeigt.
Wenn Ri aufin1 gesetzt ist, werden die Daten auf dem Bus in R geladen.ich.
Wenn Riaus. ist auf 1 gesetzt, der Inhalt des Registers Richwerden auf den Bus gesetzt.
Bewege R,
1 R4 ist eine Anweisung. Dies kann wie folgt erreicht werden:
Alternativer Ansatz:
Datenübertragungen können sowohl steigende als auch fallende Flanken des Takts verwenden.
Wenn kantengetriggerte Flip-Flops nicht verwendet werden, können 2 oder mehr Taktsignale vorhanden sein
benötigt, um einen ordnungsgemäßen Datentransfer zu gewährleisten. Dies ist eine mehrphasige Taktung.
Wenn Riin=1, mux wählt Daten auf dem Bus aus. Daten werden bei steigendem Wechsel in das Flip-Flop geladen.
Rand des Uhr.
Wenn Riin=0, mux gibt den derzeit im Flip-Flop gespeicherten Wert zurück.
Wann Riout=0, der Ausgang des Gates befindet sich im Hochimpedanzzustand (elektrisch getrennt).
d.h. offen- Zustand des Schalters.
Wenn RAusgang=1, das Tor steuert den Bus auf 0 oder 1, abhängig vom Wert von Q.
1.R1aus, Yin
2.R2 ausWähleYin
3.Zaus, R3 Zoll
Nur eine Registerausgabe kann während eines beliebigen Taktes an den Bus angeschlossen werden.
Die Standorte wurden gelesen und sind auf den Datenleitungen des Speicherbusses verfügbar.
Berücksichtigen Sie die Anweisung Bewege (R1)2Die erforderlichen Maßnahmen zur Durchführung dieser
Anweisungen sind:
oMAR [R1]
o Starten Sie einen Lesevorgang auf dem Speicherbus.
o Warten Sie auf die MFC-Antwort aus dem Speicher.
o Lade MDR vom Speicher-Bus.
oR2 [MDR]
Die Inhalte des MAR sind immer an den Adressleitungen des Speicherbusses verfügbar.
Wenn eine neue Adresse in MAR geladen wird, erscheint sie auf dem Speicherbus bei der
Beginn des nächsten Uhrzyklus, wie gezeigt.
Ein Lese-Steuersignal wird gleichzeitig aktiviert, wenn der MAR geladen wird.
Dieses Signal wird dazu führen, dass die Bus-Schnittstellenschaltung einen Lese-Befehl sendet,
MR (Speicherlesen) auf dem Bus.
MDRinEwartet aktiv auf eine Antwort aus dem Speicher.
Daten, die aus dem Speicher empfangen werden, werden am Ende des Taktzyklus in das MDR geladen.
5.3.1 Verzweigungsanweisungen
Eine Sprunganweisung ersetzt den Inhalt des PC mit dem Sprungziel
Adresse.
Diese Adresse wird in der Regel durch Hinzufügen eines Offsets X erhalten, der in der
Sprungbefehl, zum aktualisierten Wert des PC.
Der Offset X, der in einer Sprunganweisung verwendet wird, ist die Differenz zwischen dem Sprung
Zieladresse und die Adresse unmittelbar nach der Sprunganweisung.
Wenn sich die Verzweigungsanweisung bei 2000 befindet und die Zieladresse der Verzweigung 2050 ist, dann ist der Wert von X
muss 46 sein. (Dies liegt daran, dass der PC während der Abrufphase erhöht worden wäre, sodass er
würde bereits auf 2004 zeigen. Daher ist nur 46 der Offset.)
Für einen bedingten Zweig müssen wir den Status der Bedingungscodes überprüfen, bevor
Laden eines neuen Wertes in den PC.
Für die (Branch > 0) Anweisung wird Schritt 4 durch das Offset-Feld des IR ersetzt.außerhalb, Hinzufügen, Zin, Wenn
N=0, dann Ende. Wenn N=0 ist, kehrt der Prozessor sofort nach Schritt 4 zu Schritt 1 zurück.
Wenn N=1 ist, wird Schritt 5 ausgeführt, um einen neuen Wert in das PC zu laden, wodurch der Sprung ausgeführt wird.
Betrieb.
5.4 Mehrbus-Organisation
Die einzelne Busstruktur führt zu Steuersequenzen, die ziemlich lang sind, da nur
Ein Element kann in 1 Taktzyklus über den Bus übertragen werden.
Um die Anzahl der Schritte zu reduzieren und die CPU-Leistung zu verbessern, modern
Prozessoren bieten mehrere interne Wege, die mehrere Übertragungen ermöglichen.
parallel platzieren.
Alle allgemeinen Zwecke Register sind in einem einzigen Block zusammengefasst, der als Registerdatei bezeichnet wird.
- Steuersequenz für den Befehl Add R4, R5, R6 für die 3-Bus-Organisation
Zwei Ansätze:
Festverdrahtete Steuerung
Mikroprogrammierte Steuerung
Der Decoder/Encoder-Block ist eine kombinatorische Schaltung, die das angeforderte erzeugt.
Steuersignale (Ausgänge) abhängig von den Zuständen aller Eingänge.
Der Schrittdecoder bietet für jeden Schritt oder Zeitraum eine separate Signalleitung.
Steuerfolge.
Der Ausgang des Instruktionsdecoders besteht aus einer separaten Zeile für jede Maschine
Anweisung.
Für jede im IR geladene Anweisung wird eine der Ausgabelinien INS1 bis INSm auf gesetzt.
1 und alle anderen Zeilen sind auf 0 gesetzt.
Die Eingangssignale zum Encoder-Block werden kombiniert, um die einzelnen Steuerungen zu erzeugen.
Signale wie Yin, PCausHinzufügen
Dieser Schaltkreis implementiert die Logikfunktion: Zin= T1+T4.Br+T6.Fügen Sie hinzu ...
Dieses Signal wird während des Zeitfensters T aktiviert.1für alle Anweisungen, während T4für
unbedingte Sprunganweisungen und T6für eine Addieranweisung.
RUN-Steuersignal:
Wenn auf 1 gesetzt, bewirkt RUN, dass der Zähler am Ende um eins erhöht wird.
jeder Taktzyklus.
Wenn auf 0 gesetzt, stoppt der Zähler. Dies ist erforderlich, wenn das WMFC-Signal ...
ausgegeben, um den Prozessor zum Warten auf eine Antwort vom Speicher zu bringen.
Logikfunktion:
Das Endsignal startet einen neuen Instruktionsabruffzyklus, indem es den Steuer-Schrittzähler zurücksetzt.
zu seinem Ausgangswert.
Die Steuerhardware kann als Zustandsmaschine betrachtet werden, die von einem...
Zustand zu einem anderen in jedem Taktschritt, abhängig von den Inhalten des IR, Bedingung
Codes und externe Eingaben.
Die Ausgänge der Zustandsmaschine sind Steuersignale.
Die Reihenfolge der von der Maschine durchgeführten Operationen wird durch die Verdrahtung bestimmt.
Logikelemente, daher der Name „hardwired“.
Die meisten Prozessoren verwenden heute separate Caches für Instruktionen und Daten.
Der Prozessor ist über die Bus-Schnittstelle mit dem Systembus verbunden.
Um das Potenzial für gleichzeitige Operationen zu erhöhen, mehrere Ganzzahlen und Fließkommazahlen
Punkteinheiten.
5.6 Mikroprogrammierte Steuerung
Durch die Verwendung von fest verdrahteter Steuerung können die im Prozessor erforderlichen Steuersignale sein
generiert mit einem Steuer-Schrittzähler und einem Decoder/Encoder-Schaltkreis.
Bei der mikroprogrammierten Steuerung werden die Steuersignale durch ein Programm erzeugt.
ähnlich wie Maschinenprogrammiersprachen.
Ein Steuerwort (CW) ist ein Wort, dessen einzelne Bits die verschiedenen Steuerungen repräsentieren.
Signale.
Eine Sequenz von CWs, die der Steuersequenz einer Maschine entspricht
Die Anweisung bildet die Mikroroutine für diese Anweisung.
Einzelne Steuerwörter in dieser Mikroroutine werden als Mikroanweisungen bezeichnet.
Die Mikro-Routinen für alle Befehle im Befehlssatz eines Computers sind gespeichert
in einem speziellen Speicher, der als Steuerstore bezeichnet wird.
Die Steuereinheit kann die Steuersignale für jede Anweisung generieren, indem sie nacheinander liest.
die CWs der Mikro-Routine aus dem Steuer-Speicher. Um dies zu erreichen, die Organisation von
CU kann sein:
Mikro Programmzähler (µPC) wird verwendet, um die Steuerwörter der Reihe nach zu lesen von der
Kontrollgeschäft.
Jedes Mal, wenn eine neue Anweisung in das IR geladen wird, ist die Ausgabe des als beschrifteten Blocks
„Startadresse-Generator“ wird in den µPC geladen.
µPC wird automatisch durch die Uhrzeit inkrementiert, was aufeinanderfolgende Mikro
Anweisungen, die aus dem Steuerlager gelesen werden sollen.
In der mikroprogrammierten Steuerung wird ein alternatives Verfahren für bedingte Sprungmikro verwendet.
Anleitungen.
Die Mikro-Routine für die Sprunganweisung besagt, dass: Nach dem Laden von Branch<0 in den IR, ein
Branch-Mikroanweisung überträgt die Kontrolle an die entsprechende Mikro-Routine, die
Es wird angenommen, dass es an Standort 25 im Steuerstore beginnt.
Die Mikroanweisungen an der Stelle 25 testen das N-Bit der Bedingungscodes.
Wenn es 0 ist, erfolgt ein Sprung zu Speicherort 0, um eine neue Maschine abzurufen.
Anleitung.
Andernfalls wird die Mikroanweisung an der Stelle 26 ausgeführt. Dann folgt 27.
Um dieses Mikroprogrammereignis zu unterstützen, ist die CU wie folgt dargestellt:
5.6.1 Mikroanweisungen
Eine unkomplizierte Möglichkeit, Mikroanweisungen zu strukturieren, besteht darin, eine Bitposition zuzuordnen.
jedes Steuersignal.
Dieses Schema hat einen ernsthaften Nachteil - es werden einzelne Bits jedem Steuerungselement zugewiesen
Signale führen zu langen Mikroanweisungen, da die Anzahl der benötigten Signale ...
groß.
Nur wenige Bits sind auf 1 gesetzt, was bedeutet, dass der verfügbare Bitraum schlecht genutzt wird.
XOR.
Insgesamt werden 42 Steuersignale benötigt.
Nachteil dieses Ansatzes: Die meisten Signale werden nicht gleichzeitig benötigt.
und viele Signale sind gegenseitig exklusiv. Dieser Raum kann reduziert werden.
2) Die Signale können so gruppiert werden, dass alle sich gegenseitig ausschließenden Signale zusammen platziert werden.
Gruppe.
Ein binäres Codierungsschema wird verwendet, um die Signale innerhalb einer Gruppe darzustellen. In diesem CU,
Der µPC wird jedes Mal erhöht, wenn eine neue Mikroanweisung aus dem Mikro abgerufen wird.
Programmspeicher, mit Ausnahme der folgenden Situationen:
Wenn ein neuer Befehl in das IR geladen wird, wird der µPC mit dem Startwert geladen.
Adresse von µroutine für diese Anweisung.
Wenn eine Branch-µAnweisung getroffen wird und die Verzweigungsbedingung ist
Zufrieden wird die µPC mit der Zweigadresse geladen.
Wenn eine End-µAnweisung getroffen wird, wird der µPC mit dem geladen.
Adresse des ersten CW im µ-Routine für den Instruktionsabholzyklus.
Nachteil dieses Ansatzes: Dieses Format erfordert etwas mehr Hardware, da das Dekodieren
Schaltungen müssen verwendet werden, um die Bitmuster jedes Feldes in einzelne Steuersignale zu decodieren.
Vorteil: - Dieses Format führt zu einem kleineren Steuerbereich. Es werden nur 20 Bits benötigt, um zu speichern.
Muster für 42 Signale.
3) Aufzählung der Muster der erforderlichen Signale in allen möglichen Mikroanweisungen.
Jede sinnvolle Kombination aktiver Steuersignale kann zugewiesen werden.
ein eindeutiger Code, der die Mikroanweisung repräsentiert.
Solch eine vollständige Kodierung reduziert die Länge der MW, erhöht jedoch die Komplexität von
erforderliche Dekoderschaltungen.
So stark kodierte Systeme, die kompakte Codes verwenden, um nur einen
eine kleine Anzahl von Steuerfunktionen in jeder µAnweisung wird als ein
vertikale Organisation
"Horizontale Organisation" ist ein kodiertes Schema, in dem viele Ressourcen
kann mit einer einzigen Anweisung gesteuert werden, wie in Abbildung 7.15 dargestellt.
Diese Organisation ist nützlich, wenn eine höhere Betriebs Geschwindigkeit gewünscht wird und
5.6.2 Mikrogramm-Sequenzierung
Ein einfaches Mikroprogramm unter Verwendung des Formats in Abbildung 7.15 ist ziemlich einfach zu schreiben.
und Überprüfung. Aber dieses Schema hat 2 Nachteile:
Anforderung eines großen Steuerstores, da jede Maschinenanweisung eine hat
separate Mikro-Routine.
Wenn die Maschinenanweisungen mehrere Adressierungsmodi haben, gibt es eine separate
Mikroroutine für jede dieser Kombinationen kann Duplikate erzeugen von
gemeinsame Teile des Programms.
Um diese Probleme zu lösen, sollte das Mikrogramm so organisiert sein, dass Mikro
Routinen teilen die gemeinsamen Teile
Dies erfordert viele Verzweigungsanweisungen, um die Kontrolle zwischen verschiedenen zu übertragen
Teile.
Dies führt zu einem weiteren Problem - die Programmausführungszeit wird länger sein, da
Es wird mehr Zeit benötigt, um die Zweigbefehle auszuführen.
Betrachten Sie eine Anweisung „Add src,Rdst“, um die Komplexität der Sequenzierung zu veranschaulichen.
Betrieb
Diese Anweisung addiert das Quelloperand zu den Inhalten des Registers Rdst und
platziert die Summe in Rdst, dem Zielregister.
Der Quelloperand kann in einem der folgenden Adressierungsmodi sein: Register, Auto
inkrementieren
Ein Mikroprogramm wird in Form eines Flussdiagramms präsentiert, um das Verständnis zu erleichtern.
Jede Box im Diagramm repräsentiert eine Mikroanweisung, die die Transfers und steuert
Operationen, die im Kästchen angegeben sind.
Die Mikroanweisung (µAnweisung) befindet sich an der Adresse, die durch die oktale angezeigt wird.
Zahl oben in der oberen rechten Ecke des Feldes.
Jede octale Ziffer repräsentiert 3 Bits.
Verwendete Techniken:
Änderung der Zweigadresse durch Bit-OR-Operation
Aus dem Flussdiagramm ist ersichtlich, dass Zweige zu unterschiedlichen
Adressen, da einige Teile der Mikro-Routinen von allen geteilt werden.
Mikroprogramme
An einem Punkt mit der Bezeichnung α soll eine Entscheidung über das Verzweigen getroffen werden:
Wenn der Direktmodus festgelegt ist, wird die Anweisung an der Stelle 170 umgangen und
Die Kontrolle geht zu 171
Wenn der indirekte Modus angegeben ist, dann ist die µAnweisung an der Stelle 170
ausgeführt, um das Operanden aus dem Speicher abzurufen.
Dies wird mit einer Technik namens Bit-ORing durchgeführt.
Bit-ODER
Der einfachste Weg, die Kontrolle direkt an den Ort 171 zu übertragen, besteht darin, den vorhergehenden
Branch µAnweisung gibt die Adresse 170 an und verwendet dann ein ODER-Gatter, um zu ändern
Setzen Sie das LSB dieser Adresse auf 1, wenn der direkte Adressierungsmodus angegeben ist. Dies ist bekannt als
Bit-ORing-Technik.
Oktal Binär
Adresse, die vom Instruktionsdekodierer erzeugt wurde 101 001 000 001
Indexiert 161 001 110 001
Autodekrement 141 001 100 001
Autoinkrement 121 001 010 001
Direkt registrieren 101 001 000 001
Indirekt registrieren 111 001 001 001
Modusbits-Annahmen:
10thBit 9thBit Modus
1 1 Indexiert
1 0 Automatische Dekrementierung
0 1 Automatische Inkrementierung
0 0 Registrieren
8thBit
0 Direkt
1 Indirekt
Der Prozessor hat 16 Register, die für die Adressierung verwendet werden, wobei jedes mit 4 Bit angegeben ist.
Code.
Es gibt 2 Phasen der Dekodierung:
Das Mikrobefehl-Feld muss dekodiert werden, um festzustellen, ob es sich um Rsrc oder Rdst handelt.
Das Register ist beteiligt.
Die dekodierte Ausgabe wird dann verwendet, um den Inhalt von Rsrc oder Rdst zu steuern.
Felder in IR. In den zweiten Dekodierer, der die Steuerungssignale erzeugt für
aktuelle Register R0 bis R15
Die Mikro-Routine für Add (Rsrc)+Rdst hat zwei Beispiele für Bit-ORing:
1) Mikroanweisung an Standort 003:
Es gibt 5 Startadressen für die Mikro-Routine, abhängig von der
Adressierungsmodus.
Diese Adressen unterscheiden sich nur in der mittleren oktalen Ziffer.
Die 3 Bits, die mit der mittleren Ziffer ODER-verknüpft werden sollen, werden von der Dekoderschaltung bereitgestellt.
verbunden mit der Quelladresse.
Die Adresse kann je nach den Daten in der IR, den Zustandscodes und
Externe Eingaben.
Überdenken der Anweisung „Add (Rsrc)+, Rdst“
oµroutine wird in Abbildung 7.21 gezeigt
Wenn wir die gerade entworfenes Kontrollstruktur verwenden, müssen wir die
µBefehlsformat, das in Abbildung 7.19 entworfen wurde
Zusätzliche Felder, die zusammen mit dem vorherigen Format hinzugefügt werden sollen, sind:
oSignal ODERModuswird verwendet, um anzugeben, ob das Bit-ORing verwendet wird oder nicht.
o Das Signal ORindsrc wird verwendet, um anzuzeigen, ob eine indirekte Adressierung der Quelle vorliegt.
Der Operand wird für das breite Branching im Flussdiagramm von Abbildung 7.20 verwendet.
o Ein Bit in der µAnweisung wird verwendet, um anzuzeigen, wann die Ausgabe des
Der Befehlsdecoder soll in die µAR gesteuert werden.
o Jede µAnweisung enthält ein 8-Bit-Feld, das die Adresse der nächsten enthält
µAnweisung.
Die Abbildungen 7.25 und 7.26 des Lehrbuchs geben ein detailliertes Bild der Steuerstruktur der Abbildung.
7.22 und Schaltungen zum Bit-ODERing.
Problem
Schreiben Sie die Steuersequenz der Ausführung der Anweisung ADD (R3), R1. Dafür
Eine Abfolge von Anweisungen, der Prozessor wird von einer kontinuierlich laufenden Uhr angetrieben, die
dass jeder Steuerungsschritt eine Dauer von 2 ns hat. Wie lange wird der Prozessor warten müssen in
Schritte 2 und 5, vorausgesetzt, dass eine Speicherleseoperation 16 ns dauert? Außerdem
Berechnen Sie den Prozentsatz der Zeit, während der der Prozessor während der Ausführung untätig ist.
diese Anweisung.
Lösung:
Steuersequenz:
1.PCaus, MARin, Lesen, Auswählen4, Hinzufügen, Zin
2.Zaus, PCin, Yin, WMFC
3.MDRraus, IRin
4.R3aus, MARin, Lies
5.R1aus, Yin, WMFC
6.MDRaus, WählenY, Hinzufügen, Zin
7.Zaus, R1in, Ende.
Der Prozessor ist während der Speicherlesevorgänge untätig. d.h. für eine Dauer von 32 ns aus
42ns. Daher beträgt die Leerlaufzeit des Prozessors = 32ns/42ns = 76,2% der Gesamtzeit.