Heim  >  Artikel  >  Die Anweisungen in der Anwendung können unterteilt werden in das Anfordern bestimmter Dienste vom Betriebssystem und was?

Die Anweisungen in der Anwendung können unterteilt werden in das Anfordern bestimmter Dienste vom Betriebssystem und was?

青灯夜游
青灯夜游Original
2020-10-27 11:48:0045767Durchsuche

Theoretisch können die Anweisungen in der Anwendung in Befehlssätze unterteilt werden, mit denen bestimmte Dienste vom Betriebssystem und der Zentraleinheit (CPU) angefordert werden. Der Verarbeitungsablauf von CPU-Operationsanweisungen ist grob in mehrere Schritte unterteilt: Befehlsabruf, Dekodierung, Ausführung, Speicherzugriff, Zurückschreiben usw.; jeder Befehl benötigt 1 bis 6 Bytes, je nachdem, welche Felder erforderlich sind.

Die Anweisungen in der Anwendung können unterteilt werden in das Anfordern bestimmter Dienste vom Betriebssystem und was?

Die Betriebsumgebung dieses Artikels: Windows 10-System, Thinkpad T480-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:

Die Anweisungen in der Anwendung können unterteilt werden in das Anfordern bestimmter Dienste vom Betriebssystem und was?

Abrufen (Abrufen)

Die Wertphase liest die Anweisungsbytes aus dem Speicher und legt sie im Anweisungsspeicher (in der CPU) ab Adresse ist das Programm. Der Wert des Zählers (PC). 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, den Inhalt von bis zu zwei Registern gleichzeitig lesen)

Ausführung (ausführen)

Während der Ausführungsphase wird die Arithmetik-/Logikeinheit (ALU) je nach Art der Anweisung 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 entsprechend dem Anweisungscode und dem Verzweigungsflag den nächsten PC-Wert aus den in den vorherigen Schritten erhaltenen Signalwerten aus.

Das obige ist der detaillierte Inhalt vonDie Anweisungen in der Anwendung können unterteilt werden in das Anfordern bestimmter Dienste vom Betriebssystem und was?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn