Milap Neupane Blog

CPU, auch Mikroprozessor genannt, ist das Herz und/oder Gehirn eines Computers. Lassen Sie uns tief in den Kern des Computers eintauchen und verstehen, wie die CPU funktioniert, was uns hilft, Computerprogramme effizient zu schreiben.

Ein Werkzeug ist normalerweise einfacher als eine Maschine; Es wird im Allgemeinen mit der Hand verwendet, während eine Maschine häufig durch Tier- oder Dampfkraft bewegt wird.

– Charles Babbage

Ein Computer ist eine Maschine, die hauptsächlich mit Strom betrieben wird, aber seine Flexibilität und Programmierbarkeit haben dazu beigetragen, die Einfachheit eines Werkzeugs zu erreichen.

CPU ist das Herz und/oder das Gehirn eines Computers. Es führt die Anweisungen aus, die ihnen zur Verfügung gestellt werden. Seine Hauptaufgabe besteht darin, arithmetische und logische Operationen durchzuführen und die Anweisungen zusammen zu orchestrieren. Bevor wir uns mit den Hauptteilen befassen, schauen wir uns zunächst an, was die Hauptkomponenten einer CPU sind und welche Rollen sie spielen:

Zwei Hauptkomponenten einer CPU (Prozessor)

  • Steuereinheit — CU
  • Arithmetische und logische Einheit — ALU

Steuereinheit — CU

Steuereinheit CU ist der Teil der CPU, der die Ausführung von Anweisungen orchestriert. Es sagt, was zu tun ist. Gemäß der Anweisung hilft es, die Drähte zu aktivieren, die die CPU mit verschiedenen anderen Teilen des Computers einschließlich der ALU verbinden. Die Steuereinheit ist die erste Komponente der CPU, die den Befehl zur Verarbeitung empfängt.

Es gibt zwei Arten von Steuergeräten:

  • fest verdrahtete Steuergeräte.
  • mikroprogrammierbare (mikroprogrammierte) Steuereinheiten.

Fest verdrahtete Steuereinheiten sind die Hardware und benötigen die Änderung der Hardware, um die Funktionsweise zu ändern, während die mikroprogrammierbare Steuereinheit so programmiert werden kann, dass sie ihr Verhalten ändert. Fest Verdrahtete CU ist schneller in der verarbeitung anweisung während micro-programmierbare als mehr flexible.

Arithmetik und logische Einheit — ALU

Arithmetik und logische Einheit ALU erledigt, wie der Name schon sagt, alle arithmetischen und logischen Berechnungen. ALU führt Operationen wie Addition, Subtraktion aus. ALU besteht aus Logikschaltungen oder Logikgattern, die diese Operationen ausführen.

Die meisten Logikgatter nehmen zwei Eingänge auf und erzeugen einen Ausgang

Unten ist ein Beispiel für eine halbe Addierschaltung, die zwei Eingänge aufnimmt und das Ergebnis ausgibt. Hier sind A und B der Eingang, S der Ausgang und C der Übertrag.

Halber Addierer
Halbe Quelle: https://en.wikipedia.org/wiki/Adder_(electronics)#/Medien/Datei:Half_Adder.svg

Speicher — Register und Speicher

Die Hauptaufgabe der CPU besteht darin, die ihr zur Verfügung gestellten Anweisungen auszuführen. Um diese Anweisungen die meiste Zeit zu verarbeiten, benötigt es Daten. Einige Daten sind Zwischendaten, einige von ihnen sind Eingaben und andere sind die Ausgabe. Diese Daten werden zusammen mit den Anweisungen im folgenden Speicher gespeichert:

Register

Ein Register ist ein kleiner Satz von Stellen, an denen die Daten gespeichert werden können. Ein Register ist eine Kombination von Latches. Latches, auch Flip-Flops genannt, sind Kombinationen von Logikgattern, die 1 Bit Information speichern.

Ein Latch hat zwei Eingangskabel, Schreib- und Eingangskabel und ein Ausgangskabel. Wir können den Schreibdraht aktivieren, um Änderungen an den gespeicherten Daten vorzunehmen. Wenn der Schreibdraht deaktiviert ist, bleibt der Ausgang immer gleich.

Ein SR-Latch, aufgebaut aus einem Paar kreuzgekoppelter NOR-Gatter

Die CPU verfügt über Register zum Speichern der Ausgabedaten. Das Senden an den Hauptspeicher (RAM) wäre langsam, da es sich um die Zwischendaten handelt. Diese Daten werden an andere Register gesendet, die über einen BUS verbunden sind. Ein Register kann Anweisung, Ausgabedaten, Speicheradresse oder jede Art von Daten speichern.

Speicher(RAM)

Ram ist eine Sammlung von Registern, die so angeordnet und kompakt sind, dass sie eine höhere Anzahl von Daten speichern können. RAM (Random Access Memory) ist flüchtig und seine Daten gehen verloren, wenn wir den Strom ausschalten. Da RAM eine Sammlung von Registern zum Lesen / Schreiben von Daten ist, nimmt ein RAM die Eingabe der 8-Bit-Adresse, die Dateneingabe für die tatsächlich zu speichernden Daten und schließlich den Lese- und Schreib-Enabler vor, der wie für die Latches funktioniert.

Was sind Anweisungen

Anweisungen sind die Berechnungen auf granularer Ebene, die ein Computer ausführen kann. Es gibt verschiedene Arten von Befehlen, die eine CPU verarbeiten kann.

Anweisungen enthalten:

  • Arithmetik wie Addieren und Subtrahieren
  • Logische Anweisungen wie und, oder und nicht
  • Datenanweisungen wie Verschieben, Eingeben, Ausgeben, Laden und Speichern
  • Steuerflussanweisungen wie goto, if … goto, call und return
  • Benachrichtigen Sie die CPU, dass das Programm beendet wurde Halt

Anweisungen werden einem Computer in Assemblersprache bereitgestellt oder von einem Compiler generiert oder in einer niveau Sprachen.

Diese Anweisungen sind in der CPU fest verdrahtet. ALU enthält Arithmetik und Logik, während der Kontrollfluss von CU verwaltet wird.

In einem Taktzyklus können Computer eine Anweisung ausführen, aber moderne Computer können mehr als eine ausführen.

Eine Gruppe von Anweisungen, die ein Computer ausführen kann, wird als Befehlssatz bezeichnet.

CPU-Takt

Taktzyklus

Die Geschwindigkeit eines Computers wird durch seinen Taktzyklus bestimmt. Es ist die Anzahl der Taktperioden pro Sekunde, an denen ein Computer arbeitet. Einzelne Taktzyklen sind sehr klein wie herum 250 * 10 *-12 sec. Höher der Taktzyklus schneller ist der Prozessor.

Ein CPU-Takt wird in GHz(Gigahertz) gemessen. 1 GHz ist gleich 10 ⁹ Hz (hertz). Ein Hertz bedeutet eine Sekunde. 1 Gigahertz bedeutet also 10 ⁹ Zyklen pro Sekunde.

Je schneller der Taktzyklus, desto mehr Befehle kann die CPU ausführen. Taktzyklus = 1 / Taktrate CPU-Zeit = Anzahl der Taktzyklen / Taktrate

Dies bedeutet, dass wir zur Verbesserung der CPU-Zeit die Taktrate erhöhen oder die Anzahl der Taktzyklen verringern können, indem wir den Befehl optimieren, den wir der CPU zur Verfügung stellen. Einige Prozessoren bieten die Möglichkeit, den Taktzyklus zu erhöhen, aber da es sich um physikalische Veränderungen handelt, kann es zu Überhitzung und sogar zu Rauch / Feuer kommen.

Wie wird eine Anweisung ausgeführt?

Anweisungen werden in sequentieller Reihenfolge im RAM gespeichert. Für eine hypothetische CPU besteht der Befehl aus OP-Code (operativer Code) und Speicher- oder Registeradresse.

In einem Befehlsregister (IR) der Steuereinheit befinden sich zwei Register, die den OP-Code des Befehls und das Befehlsadressenregister laden, das die Adresse des aktuell ausgeführten Befehls lädt. Es gibt andere Register in einer CPU, die den in der Adresse der letzten 4 Bits eines Befehls gespeicherten Wert speichern.

Nehmen wir ein Beispiel für eine Reihe von Anweisungen, die zwei Zahlen addieren. Im Folgenden finden Sie die Anweisungen zusammen mit ihrer Beschreibung. Die CPU führt die folgenden Anweisungen aus:

SCHRITT 1 – LOAD_A 8:

Die Anweisung wird zunächst im RAM gespeichert, z. B. <>. Das erste 4 Bit ist der Op-Code. Dies bestimmt die Anweisung. Diese Anweisung wird in den IR der Steuereinheit abgerufen. Der Befehl wird als load_A dekodiert, was bedeutet, dass er die Daten in der Adresse 1000 laden muss, die das letzte 4—Bit des Befehls ist, um A zu registrieren.

SCHRITT 2 — LOAD_B 2

Ähnlich wie oben werden die Daten in der Speicheradresse 2 (0010) in das CPU-Register B geladen.

SCHRITT 3 – ADD B A

Nun besteht die nächste Anweisung darin, diese beiden Zahlen hinzuzufügen. Hier teilt die CU ALU mit, den Vorgang Hinzufügen auszuführen und das Ergebnis wieder in Register A zu speichern.

SCHRITT 4 – STORE_A 23

Dies ist eine sehr einfache Anleitung, mit der Sie zwei Zahlen hinzufügen können.

Wir haben erfolgreich zwei Zahlen hinzugefügt!

BUS

Alle Daten zwischen CPU, Register, Speicher und IO Devise werden über Bus übertragen. Um die gerade hinzugefügten Daten in den Speicher zu laden, legt die CPU die Speicheradresse auf den Adressbus und das Ergebnis der Summe auf den Datenbus und aktiviert das richtige Signal im Steuerbus. Auf diese Weise werden die Daten mit Hilfe des Busses in den Speicher geladen.

CPU-Bus
Foto src: https://en.wikipedia.org/wiki/Bus_(computing)#/Medien/Datei:Computer_system_bus.svg

Cache

CPU hat auch einen Mechanismus, um den Befehl in seinen zwischengespeicherten Prefetch. Wie wir wissen, gibt es Millionen von Anweisungen, die ein Prozessor innerhalb einer Sekunde ausführen kann. Dies bedeutet, dass mehr Zeit für das Abrufen der Anweisung aus dem RAM aufgewendet wird als für deren Ausführung. Der CPU-Cache ruft also einen Teil der Anweisungen und auch Daten vorab ab, damit die Ausführung schnell erfolgt.

Wenn die Daten im Cache und im Arbeitsspeicher unterschiedlich sind, werden die Daten als Dirty Bit markiert.

Instruction Pipelining

Moderne CPUs verwenden Instruction Pipelining zur Parallelisierung bei der Befehlsausführung. Holen, Dekodieren, Ausführen. Wenn sich ein Befehl in der Decodierungsphase befindet, kann die CPU einen anderen Befehl für die Abrufphase verarbeiten.

CPU uhr zyklus
Foto quelle: https://en.wikipedia.org/wiki/Instruction_pipelining#/media/File:Pipeline,_4_stage.svg

Dies hat ein Problem, wenn eine Anweisung von einer anderen abhängt. Prozessoren führen also die Anweisung aus, die nicht abhängig und in einer anderen Reihenfolge ist.

Multicore-Computer

Es ist im Grunde die gleiche CPU, hat aber einige gemeinsame Ressourcen wie den Cache.

Leistung

Die Leistung der CPU wird durch die Ausführungszeit bestimmt. Performance = 1/Ausführungszeit

Angenommen, die Ausführung eines Programms dauert 20 ms. Die Leistung der CPU ist 1/20 = 0.05msRelative Performance = Ausführungszeit 1/ Ausführungszeit 2

Der Faktor, der für eine CPU-Leistung in Betracht kommt, ist die Befehlsausführungszeit und die CPU-Taktrate. Um die Leistung eines Programms zu erhöhen, müssen wir entweder die Taktrate erhöhen oder die Anzahl der Befehle in einem Programm verringern. Die Prozessorgeschwindigkeit ist begrenzt und moderne Computer mit mehreren Kernen können Millionen von Anweisungen pro Sekunde unterstützen. Wenn das Programm, das wir geschrieben haben, jedoch viele Anweisungen enthält, verringert dies die Gesamtleistung.

Die Big O-Notation bestimmt mit der gegebenen Eingabe, wie die Leistung beeinflusst wird.

Es gibt viele Optimierungen in der CPU, um sie schneller zu machen und so viel wie möglich zu leisten. Beim Schreiben eines Programms müssen wir überlegen, wie die Reduzierung der Anzahl der Anweisungen, die wir der CPU zur Verfügung stellen, die Leistung des Computerprogramms erhöht.

Möchten Sie Datenbanken optimieren? Erfahren Sie mehr darüber hier: https://milapneupane.com.np/2019/07/06/how-to-work-optimally-with-relational-databases/

Related Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.