Die Anweisungen der Anwendung können in zwei Kategorien unterteilt werden: die Befehle des Zentralprozessors, d. h. der Befehlssatz der CPU, und diejenigen, die zum Anfordern bestimmter Dienste vom Betriebssystem verwendet werden Grob unterteilt in Befehlsabruf, Dekodierung, Ausführung, Abruf, Zurückschreiben und PC-Aktualisierung.
Die Betriebsumgebung dieses Artikels: Windows 7-System, DELL G3-Computer.
Theoretisch lassen sich die Anweisungen in der Anwendung in zwei Kategorien einteilen: den Befehlssatz der Zentraleinheit (CPU) und den Befehlssatz, mit dem bestimmte Dienste vom Betriebssystem angefordert werden.
Die Zentraleinheit (CPU, Central Processing Unit) ist eine sehr große integrierte Schaltung, die den Rechenkern (Core) und den Steuerkern (Control Unit) eines Computers darstellt. Seine Funktion besteht hauptsächlich darin, Computeranweisungen zu interpretieren und Daten in Computersoftware zu verarbeiten.
Die Zentraleinheit umfasst hauptsächlich die Recheneinheit (Arithmetic Logic Unit, ALU, Arithmetic Logic Unit) und den Cache-Speicher (Cache) sowie den Bus (Bus), der die Daten (Data), Steuerung und Status dazwischen implementiert ihnen. Zusammen mit dem internen Speicher (Memory) und den Eingabe-/Ausgabegeräten (I/O) werden sie zusammen als die drei Kernkomponenten elektronischer Computer bezeichnet.
Der Verarbeitungsablauf von CPU-Betriebsanweisungen ist grob in mehrere Schritte unterteilt: Befehlsabruf, Dekodierung, Ausführung, Speicherzugriff, Zurückschreiben usw. Jede Anweisung benötigt zwischen 1 und 6 Bytes, je nachdem, welche Felder erforderlich sind. Das erste Byte jedes Befehls gibt den Typ des Befehls an: Die oberen 4 Bits sind der Codeteil (Beispiel: 6 ist ein ganzzahliger Operationsbefehl), und die unteren 4 Bits sind der Funktionsteil (Beispiel: 1 ist ein Subtraktionsbefehl). in der Integer-Klasse) 61 Zusammen bilden sie den Unterbefehl.
Befehlsfluss verarbeiten
Eine wichtige Eigenschaft des Befehlssatzes ist, dass die Bytekodierung eine eindeutige Interpretation haben muss. Jede Bytesequenz codiert entweder eine eindeutige Befehlssequenz oder ist keine gültige Bytesequenz. Da das erste Byte jeder Anweisung eine einzigartige Kombination aus Code und Funktion enthält, können wir anhand dieses Bytes die Länge und Bedeutung aller anderen zusätzlichen Bytes bestimmen.
Jede Anweisung benötigt 1 bis 6 Bytes, je nachdem, welche Felder erforderlich sind. Das erste Byte jedes Befehls gibt den Typ des Befehls an: Die oberen 4 Bits sind der Codeteil (Beispiel: 6 ist ein ganzzahliger Operationsbefehl), und die unteren 4 Bits sind der Funktionsteil (Beispiel: 1 ist ein Subtraktionsbefehl). in der Integer-Klasse) 61 Zusammen bilden sie den Unterbefehl.
Das Folgende ist das Flussdiagramm für die Verarbeitung jeder Anweisung:
Abrufen
Die Wertphase liest die Anweisungsbytes aus dem Speicher und legt sie im Anweisungsspeicher (CPU) ab. Die Adresse ist der Programmzähler (PC). Wert. Es berechnet sequentiell die Adresse des nächsten Befehls, der dem aktuellen Befehl folgt (d. h. den Wert von PC plus die Länge des abgerufenen Befehls).
Dekodierung (Dekodierung)
ALU liest bis zu zwei Operanden aus der Registerdatei (einer Sammlung von Allzweckregistern). (Das heißt, der Inhalt von bis zu zwei Registern kann gleichzeitig gelesen werden)
Ausführung
Während der Ausführungsphase wird die Arithmetik-/Logikeinheit (ALU) je nach Befehlstyp für unterschiedliche Zwecke verwendet. Bei anderen Anweisungen fungiert es als Addierer, um den Stapelzeiger zu erhöhen oder zu dekrementieren, die effektive Adresse zu berechnen oder einfach 0 zu addieren und einen Eingang an den Ausgang weiterzuleiten.
Das Bedingungscoderegister (CC) verfügt über drei Bedingungsbits. Die ALU ist für die Berechnung des neuen Werts des Bedingungscodes verantwortlich. Wenn ein Sprungbefehl ausgeführt wird, wird das Verzweigungssignal cnd basierend auf dem Bedingungscode und dem Sprungtyp berechnet.
Speicher
In der Speicherzugriffsphase liest oder schreibt der Datenspeicher (in der CPU) ein Speicherwort. Befehls- und Datenspeicher greifen auf dieselben Speicherorte zu, jedoch zu unterschiedlichen Zwecken.
Zurückschreiben
Die Zurückschreibphase kann bis zu zwei Ergebnisse in die Registerdatei schreiben. Die Registerdatei verfügt über zwei Schreibports. Port E wird zum Schreiben des von der ALU berechneten Werts verwendet, während Port M zum Schreiben des aus dem Datenspeicher gelesenen Werts verwendet wird.
PC aktualisieren (PC-Update)
Wählen Sie gemäß dem Anweisungscode und dem Verzweigungsflag den nächsten PC-Wert aus den in den vorherigen Schritten erhaltenen Signalwerten aus.
Weitere Informationen zu diesem Thema finden Sie auf der Chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonAnwendungshinweise können in was unterteilt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!