====== 6.3.2) CPU - Central Processing Unit ====== Der Prozessor, Hauptprozessor oder die CPU ist heutzutage das **Herzstück eines jeden elektronischen Geräts**. Er wird in Smartphones, Taschenrechnern und in Computern, für die er eigentlich erfunden wurde, eingesetzt. Eine Welt ohne diese Rechengenies ist undenkbar. \\ Die bekanntesten Prozessoren stammen von den Unternehmen **Intel und AMD**. {{:inf:inf5bi_201819:4:4_03:pasted:20181101-100139.png?350}} {{:inf:inf5bi_201819:4:4_03:pasted:20181101-104825.png?350}} In einem **Computersystem** kann es **mehrere Prozessoren** geben. Wenn man vom Prozessor spricht, dann ist damit in der Regel immer der Hauptprozessor gemeint. Wegen seiner **zentralen Stellung** wird die Bezeichnung **"Zentrale Verarbeitungseinheit"** verwendet. \\ Der Hauptprozessor ist die **Funktionseinheit** in einem Computer, der **die eigentliche Verarbeitungsleistung erbringt**. Der Hauptprozessor ist für die **Informationsverarbeitung und die Steuerung der Verarbeitungsabläufe zuständig**. Dazu holt sich der Prozessor **aus dem Speicher nacheinander die Befehle** und **veranlasst die Informationsverarbeitung**. \\ Neben dem Hauptprozessor gibt es noch **weitere Prozessoren**, die den Hauptprozessor von der Arbeit entlasten. Der **Grafikprozessor (GPU)** ist ein solcher Prozessor. ===== Prozessor-Hersteller===== Es gibt 2 marktführende Prozessore Hersteller, **AMD** und **INTEL**. \\ Seit jeher gilt der Prozessor-Hersteller AMD als ewiger Zweiter im Kampf um die Marktanteile im PC-Prozessor-Markt. Dazu kommt, dass AMD lange Zeit von dem am stärksten wachsenden Markt, den Notebooks, abgekoppelt war. Mit wenigen Ausnahmen, waren die meisten AMD-Prozessoren in Low-Cost-PCs für Privatkunden verbaut. In den Bereichen, in denen richtig Geld verdient werden konnte, war Intel immer besser unterwegs. Das Problem von AMD und INTEL ist, dass die Prozessoren von den beiden Herstellern jeweils komplett andere Sockel gebrauchen und somit ein Umstieg von einem Hersteller zum anderen auch meistens mit einem neuen Motherboard-Kauf einhergeht. ===== Mikroprozessor ===== Der Mikroprozessor ist ein Prozessor, der vollständig in einem einzigen Schaltkreis untergebracht ist. Der Prozessor im Personal Computer ist ein solcher Mikroprozessor. {{ :inf:inf5bi_201819:4:4_03:pasted:20181101-103939.png }} => Ein **Mikroprozessor ist die Vereinigung von Rechenwerk und Steuerwerk eines Computers mit den dazugehörigen Daten-, Adress- und Steuerleitungen auf einem Chip** ===== Mikrocontroller ===== Ein Mikrocontroller ist ein **Prozessor**, der über **zusätzliche digitale Ein- und Ausgänge** verfügt und für Steuerungsaufgaben vorgesehen ist. Er wird bereits **als vollständiger Computer** angesehen, der im Embedded-Bereich eingeordnet wird. {{ :inf:inf5bi_201819:4:4_03:pasted:20181101-104631.png }} ===== Moderne Prozessortechnik ===== Die **Entwicklung der Prozessoren** verlief lange Zeit nach einem scheinbar einfachen Gesetz. Man **optimierte den internen Aufbau**, **verkleinerte die Strukturen**, **senkte die Spannung**, **erhöhte die Taktfrequenz** oder verbesserte den Herstellungsprozess. \\ Schon war die **nächste Prozessor-Generation** geboren. Doch diesem Spiel sind enge Grenzen gesetzt. So muss mit **zunehmender Chipgröße das Taktsignal immer längere Wege** zurücklegen. Damit der Zeitunterschied der Taktflanken im akzeptablen Bereich liegt, muss der **Takttreiber immer leistungsstärker** werden. Dadurch **erhöht er die Verlustleistung ** des Prozessors. Deshalb wird die **Chipfläche regelmäßig verkleinert**. Dabei werden zwischen den Schaltelementen **immer dünnere Verbindungen** eingesetzt. Dadurch **steigt der Widerstand der Verbindungen** und die Signale bewegen sich immer langsamer. Das führt unter Umständen dazu, dass die Signallaufzeit unter der Verarbeitungszeit der Gatter liegt. Die **physikalischen Grenzen zeigten sehr schnell**, dass **insbesondere die Taktfrequenz nicht unendlich weit gesteigert werden konnte**. Die Taktfrequenz bestimmt unter anderem die entstehende Verlustleistung und damit **die Lebensdauer des Prozessors**. Deshalb wurden sehr bald andere leistungssteigernde Techniken entwickelt. \\ \\ Während vor Jahren die Geschwindigkeit eines Prozessors immens wichtig war, ist heute ein **ausgewogenes System aus Prozessor, Arbeitsspeicher und Chipsatz** das Maß **für einen schnellen Computer**. Immer weniger Anwendungen benötigen die volle Rechenleistung eines aktuellen Prozessors. Aus diesem Grund bieten die heutigen Prozessoren viel mehr als nur reine Rechengeschwindigkeit. Sie haben **mehrere Kerne, nutzen Befehlssatzerweiterungen, intelligente Zwischenspeicher, verfügen über Virtualisierungstechnik und Grafikfunktionen**. ===== Multi-Core-Prozessoren ===== **Multi-Core bedeutet**, dass **in einem Prozessor mehrere Prozessor-Kerne** eingebaut sind. Man bezeichnet diese Prozessoren als Multi-Core- oder Mehrkern-Prozessoren. Rein **äußerlich unterscheiden sich** Multi-Core-CPUs **nicht von Single-Core-CPUs**. Der Rechenkern ist bei Multi-Core-CPUs einfach mehrfach vorhanden. Innerhalb des **Betriebssystems** wird der **Multi-Core-Prozessor wie mehrere Recheneinheiten** behandelt. **Je nach Anzahl der Kerne gibt es abgewandelte Bezeichnungen**, die darauf hindeuten, wie viele Kerne im Prozessor integriert sind. * Dual-Core (2) * Triple-Core (3) * Quad-Core (4) * Hexa-Core (6) * Octa-Core (8) * .... ==== Unterschied Mehrprozessorsysteme vs. Mehrkernprozessor ==== Ein Mehrprozessorsystem ist ein Computersystem, das **mehr als einen Prozessorsockel** auf der **Multi-Prozessor-Hauptplatine** besitzt, und in dem mehr als einer dieser Sockel auch bestückt ist. \\ \\ **Ein Mehrkernprozessor ist ein Prozessor mit mehreren Kernen.** {{ :inf:inf5bi_201819:4:4_03:pasted:20181101-102704.png }} ** In der obigen Abbildung ist erkennbar, dass dies 2 Prozessoren mit jeweils 2 Kernen sind. Also für das Betriebssystem insgesamt 4 Kerne zur Verfügung stehen!** ==== Vom Takt-orientierten Prozessor zum Mehr-Kern-Prozessor ==== Um einen Prozessor schneller zu machen war die **Taktfrequenz lange Zeit der maßgebliche Faktor**, um **mehr Rechenleistung** aus einem Prozessor heraus zu bekommen. Leider hat die **Erhöhung der Taktfrequenz auch Nachteile**, die zu Folgeproblemen führen, die nur sehr schwer zu lösen sind. * höhere Leistungsaufnahme * höhere Wärmeentwicklung * umfangreichere Kühlmaßnahmen * lautere Computer durch aktive Kühlung Schon eine **minimale Leistungssteigerung führt zu einem dramatisch höheren Energieverbrauch**. Die damit verbundene Leistungsaufnahme verhält sich proportional zur Taktfrequenz. Zusätzliche Transistoren und kleinere Halbleiterstrukturen erhöhen zusätzlich die Wärmeentwicklung. Die **Anforderungen an die Kühlung** sind mit den herkömmlichen Mitteln **nicht mehr zu leisten**. Gleichzeitig **verringert sich die Stabilität und Lebensdauer des Prozessors**. \\ \\ Eine **Alternative** zu immer höheren Taktraten sind **mehrere Rechenkerne**. Das bedeutet **mehr Leistung bei gleichzeitig geringerer Leistungsaufnahme**. Dabei werden die **einzelnen Kerne weit geringer getaktet**, als ein einziger Rechenkern. Insgesamt **steigt jedoch die Leistungsfähigkeit des Prozessors** mit jedem weiteren Rechenkern. ==== Problematik ==== Grundsätzlich kann man die **Rechenleistung mehrerer Kerne nicht "addieren"**. Das würde voraussetzen, dass sich die vorliegenden Rechenaufgaben parallelisieren lassen. Die effektive Nutzung mehrerer Kerne erfordert es, dass die **Software so geschrieben ist, dass sie Daten parallel verarbeitet und so zum Beispiel mehrere Kerne gleichzeitig genutzt werden**. Das heißt, ein Problem bzw. die **Ausführung eines Programms** muss **in mehrere kleine Teilaufgaben zerlegt werden**, damit diese auf mehrere Kerne verteilt werden können. Doch leider sind die üblichen Anwendungen nicht auf parallele Ausführung ausgelegt und meist auch nicht notwendig. ==== Auswirkungen auf die Prozessor- und Computer-Architektur ==== {{ :inf:inf5bi_201819:4:4_03:pasted:20181101-102209.png}} In einer **Multi-Core-Architektur müssen** sich mehrere Rechenkerne die **vorhandenen Resourcen teilen**. Zum Beispiel **Arbeitsspeicher, Schnittstellen** usw. **Je mehr Kerne** ein Prozessor hat, **desto mehr Speicher und mehr Bandbreite zum Speicher ist erforderlich**. Aus diesem Grund ist der **Speicher-Controller nicht mehr im Chipsatz, sondern im Prozessor verankert**. === Arbeitsspeicher / Hauptspeicher === Gleichzeitig besteht das Problem, dass sich die **Rechenkerne darüber abstimmen** müssen, **wer gerade welche Daten im Cache** hält. In der Regel arbeiten die Rechenkerne mit einer **hierarchischen Cache-Struktur**. Dabei bekommt **jeder Kern einen eigenen L1- und L2-Cache**. Den **L3-Cache müssen sich die Kerne teilen**. Ein Cache-Kohärenz-Protokoll sorgt dafür, dass sich die Prozessorkerne bei der Nutzung des L3-Caches nicht in die Quere kommen. ==== Typische Anwendungen für Single-Core-Prozessoren ==== * Textverarbeitung * Browser * E-Mail * Instant-Messaging * Virenscanner * MP3-Player * einfache Bildbearbeitung (Schneiden, Skalieren, Farbkorrektur) ==== Typische Anwendungen für Multi-Core-Prozessoren ==== Gut parallelisierbare Anwendungen sind Schneiden von 4K-Videos, Computergrafiken mit Raytracing erzeugen oder aufwendige Softwareprojekte kompiliert. In diesen Fällen können im Prozessor nicht genug Kerne enthalten sein. * CAD * Simulation * HD-Video * Compiler * 3D-Rendering * professionelle Audio-Bearbeitung * professionelle Bildbearbeitung * Videoschnittprogramme