Prozessor
Ein Prozessor ist eine Maschine oder eine elektronische Schaltung, die gemäß übergebenen Befehlen andere Maschinen oder elektrische Schaltungen steuert und dabei einen Prozess oder Algorithmus vorantreibt, was meist Datenverarbeitung beinhaltet. Der weitere Artikel beschreibt ausschließlich diese Bedeutung. Am populärsten sind Prozessoren als zentrale Recheneinheiten von Computern, in denen sie Befehle (Software) ausführen; am verbreitetsten sind sie als Mikrocontroller in eingebetteten Systemen (Waschmaschine, Ticketautomat, DVD-Spieler etc.).
Inhaltsverzeichnis
- 1 Begriffsverständnis
- 2 Grundlegende Informationen
- 3 Historische Entwicklung
- 4 Aufbau / Funktionale Einheiten
- 5 Verarbeitung eines einzelnen Befehls
- 6 Verschiedene Architekturen
- 7 Befehlssatz
- 8 Funktionsweise
- 9 Steuerung
- 10 Befehlsbearbeitung
- 11 Adressierungsarten
- 12 Leistungsmerkmale
- 13 Anwendungsbereich
- 14 Siehe auch
- 15 Literatur
- 16 Weblinks
- 17 Einzelnachweise
Begriffsverständnis
In früherem Sprachgebrauch wurde unter dem Begriff „Prozessor“ sowohl das Bauteil verstanden (ein Halbleiter-Chip in einem Plastikgehäuse, das mit seinen Beinchen in einen Sockel eingesteckt wird), als auch eine datenverarbeitende Logik-Einheit. Heutzutage besitzen jedoch viele Prozessor-Chips mehrere sogenannte Prozessorkerne, wobei jeder Kern für sich eine (weitgehend) eigenständige Logik-Einheit darstellt. Unter dem Begriff Prozessor wird heute im Allgemeinen vorwiegend das Bauteil verstanden; ist die datenverarbeitende Logik-Einheit gemeint, wird meist vom Prozessorkern gesprochen.
Übertragene Bedeutungen des Begriffs CPU
Der Begriff CPU wird umgangssprachlich auch in anderem Kontext für Zentraleinheit (ZE) benutzt, hierbei kann dies für einen zentralen Hauptrechner (ein kompletter Computer) stehen, an dem einzelne Terminal-Arbeitsstationen angeschlossen sind. Teilweise wird der Begriff auch als Metapher benutzt, bei Computerspielen zum Beispiel als „Ein Spiel gegen die CPU“.
Grundlegende Informationen
Hauptbestandteile eines Prozessor(kern)s sind das Rechenwerk (insbesondere die arithmetisch-logische Einheit, ALU) sowie das Steuerwerk (inkl. Adresswerk).<ref>Dieter Sautter, Hans Weinerth: Lexikon Elektronik Und Mikroelektronik. Springer, 1993, ISBN 9783642580062, S. 825 (eingeschränkte Vorschau in der Google-Buchsuche).</ref><ref>Peter Fischer, Peter Hofer: Lexikon Der Informatik. Springer, 2011, ISBN 9783642151262, S. 710 (eingeschränkte Vorschau in der Google-Buchsuche).</ref> Darüber hinaus enthalten sie meist mehrere Register und einen Speichermanager (engl. Memory Management Unit, MMU), der den Arbeitsspeicher verwaltet. Zu den zentralen Aufgaben des Prozessors gehören die Abarbeitung des Maschinenprogramms: arithmetische und logische Operationen zur Verarbeitung von Daten aus internen oder externen Quellen, beispielsweise dem Arbeitsspeicher.
Neben diesen Hauptbestandteilen, die die Grundfunktionen bereitstellen, kann es weitere Recheneinheiten geben, die spezialisierte Funktionen zur Verfügung stellen und den eigentlichen Prozessor entlasten sollen – diese Einheiten werden meist als Koprozessor bezeichnet. Beispiele hierfür sind der bis in die 1990er Jahre separate mathematische Koprozessor für Gleitkommaoperationen (die Gleitkommaeinheit) sowie Grafik- und Soundprozessoren. In diesem Zusammenhang wird der zentrale Prozessor, mit seinen im vorhergehenden Absatz beschriebenen Grundfunktionen auch als Hauptprozessor (CPU) bezeichnet. Weitere Synonyme sind zentrale Verarbeitungseinheit (ZVE) oder Zentraleinheit. Die moderne Form des Prozessors ist der Mikroprozessor, der alle Bausteine des Prozessors in einem integrierten Schaltkreis (Mikrochip) vereinigt. Moderne Prozessoren für Desktop-Computer und Notebooks aber auch für Smartphones und Tablet-Computer sind oft Mehrkernprozessoren mit zwei, vier oder mehr Prozessorkernen. Die Prozessorkerne sind hierbei oft eigenständige „Prozessoren“ mit Steuer-/Leitwerk und Rechenwerk auf einem Chip. Beispiele hierfür sind der Intel Core 2, der AMD Athlon X2 oder der Nvidia Tegra 3. Eine klare Abgrenzung der Begriffe Prozessor, Hauptprozessor, CPU und Prozessorkern ist in der Literatur nicht zu finden, siehe Abschnitt Hauptprozessor, CPU und Prozessorkern.
Prozessoren werden oft im Bereich der eingebetteten Systeme (englisch embedded systems) eingesetzt: zur Steuerung von Haushaltsgeräten, Industrieanlagen, Unterhaltungselektronik usw. In Großrechnern (englisch mainframes) wurden früher meist herstellereigene Prozessorarchitekturen verwendet, wie etwa bei IBM (PowerPC, Cell-Prozessor) oder SUN (SPARC-Prozessor); heute werden überwiegend angepasste Versionen der verbreiteten PC-Prozessormodelle verwendet.
Prozessoren für eingebettete Systeme machen etwa 95 Prozent des Prozessormarkts aus, wobei davon 90 Prozent sogenannte Mikrocontroller sind, die neben dem eigentlichen Prozessor weitere Funktionen (zum Beispiel spezielle Hardwareschnittstellen oder direkt integrierte Sensoren) enthalten. Nur etwa 5 Prozent werden in PCs, Workstations oder Servern eingesetzt.<ref>Helmut Herold, Bruno Lurz, Jürgen Wohlrab: Grundlagen der Informatik. Pearson Studium, München 2007, ISBN 978-3-8273-7305-2, S. 101.</ref>
Historische Entwicklung
In den 1930er Jahren bestand das Rechenwerk eines Computers zunächst aus Relais und mechanischen Bauelementen, z. B. bei der Zuse Z3. Diese ersten Computer waren also elektromechanische Rechner, die langsam und äußerst störanfällig waren. Noch in den 1940ern begann man damit, Computer mit Hilfe von Elektronenröhren zu bauen, wie den ENIAC. Damit wurden die Rechner schneller und weniger störanfällig. Waren diese Rechner anfangs teure Einzelprojekte, so reifte die Technik im Laufe der 1950er Jahre immer mehr aus. Röhrencomputer wurden nach und nach zu Artikeln der Serienfertigung, die für Universitäten, Forschungseinrichtungen und Firmen durchaus erschwinglich waren. Um dieses Ziel zu erreichen, war es notwendig, die Anzahl der benötigten Röhren auf ein Mindestmaß zu reduzieren. Aus diesem Grund setzte man Röhren nur dort ein, wo sie unabdingbar waren. So begann man damit, Hauptspeicher und CPU-Register auf einer Magnettrommel unterzubringen, Rechenoperationen seriell auszuführen und die Ablaufsteuerung mit Hilfe einer Diodenmatrix zu realisieren. Ein typischer Vertreter dieser Rechnergeneration war der LGP-30.
Erste Erwähnungen des Begriffes CPU gehen in die Anfänge der 1950er Jahre zurück. So wurde in einer Broschüre von IBM (705 EDPM) von 1955 der Begriff „Central Processing Unit“ zuerst ausgeschrieben, später mit der Abkürzung CPU in Klammern ergänzt und danach nur noch in seiner Kurzform verwendet. Ältere IBM-Broschüren verwenden den Begriff nicht, so z. B. die Broschüre „Magnetic Cores for Memory in Microseconds in a Great New IBM Electronic Data Processing Machine for Business“ von 1954, in der zwar ebenfalls die IBM 705 dargestellt wird, an den entsprechenden Stellen jedoch lediglich von „data processing“ die Rede ist.
In den 1950er Jahren wurden die unzuverlässigen Elektronenröhren von Transistoren verdrängt, die zudem den Stromverbrauch der Computer senkten. Anfangs wurden die Prozessoren aus einzelnen Transistoren aufgebaut. Im Laufe der Jahre brachte man aber immer mehr Transistorfunktionen auf integrierten Schaltkreisen (ICs) unter. Waren es zunächst nur einzelne Gatter, integrierte man immer häufiger auch ganze Register und Funktionseinheiten wie Addierer und Zähler, schließlich dann sogar Registerbänke und Rechenwerke auf einem Chip. Der Hauptprozessor konnte in einem einzelnen Schaltschrank untergebracht werden, was zum Begriff Mainframe, also „Hauptrahmen“, bzw. „Hauptschrank“ führte. Dies war die Zeit der Minicomputer, die nun keinen ganzen Saal mehr ausfüllten, sondern nur noch ein Zimmer. Die zunehmende Integration von immer mehr Transistor- und Gatterfunktionen auf einem Chip und die stetige Verkleinerung der Transistorabmaße führte dann Anfang der 1970er Jahre fast zwangsläufig zu der Integration aller Funktionen eines Prozessors auf einem Chip, dem Mikroprozessor. Anfangs noch wegen ihrer vergleichsweise geringen Leistungsfähigkeit belächelt (der Legende nach soll ein IBM-Ingenieur über den ersten Mikroprozessor gesagt haben: „Nett, aber wozu soll das gut sein?“), haben Mikroprozessoren heute alle vorangegangenen Techniken für den Aufbau eines Hauptprozessors abgelöst.
Dieser Trend setzte sich auch in den nachfolgenden Jahrzehnten fort. So wurde Ende der 1980er Jahre der mathematische Coprozessor und Ende der 2000er Jahre auch der Grafikprozessor in den (Haupt-)Prozessor integriert, vgl. APU.
Aufbau / Funktionale Einheiten
Ein Prozessor(kern) besteht aus Registern, einem Rechenwerk (der Arithmetic Logic Unit, kurz ALU), einem Steuerwerk sowie den Datenleitungen (Busse), die die Kommunikation mit anderen Komponenten ermöglichen (Abbildung siehe weiter unten). Diese Komponenten sind im Allgemeinen weiter unterteilbar, zum Beispiel enthält das Steuerwerk zur effizienteren Bearbeitung von Befehlen die Befehls-Pipeline mit meist mehrere Stufen, unter anderem dem Befehlsdecoder; die ALU enthält unter anderem zum Beispiel Hardwaremultiplizierer. Darüber hinaus befinden sich vor allem in modernen Mikroprozessoren mitunter sehr viel feiner unterteilte Einheiten, die flexibel einsetzbar/zuteilbar sind sowie mehrfach ausgeführte Einheiten, die das gleichzeitige Abarbeiten mehrerer Befehle erlauben (siehe zum Beispiel Hyper-Threading, Out-of-order execution).
Oft ist in heutigen Prozessoren die Memory Management Unit sowie ein (evtl. mehrstufiger) Cache integriert. Mitunter ist auch eine I/O-Unit integriert, oft zumindest ein Interrupt-Controller.
Zusätzlich finden sich auch häufig spezialisierte Recheneinheiten z. B. eine Gleitkommaeinheit, eine Einheit für Vektorfunktionen oder für Signalverarbeitung. Unter diesem Aspekt sind die Übergänge zu Mikrocontrollern oder einem System-on-a-Chip, die weitere Komponenten eines Rechnersystems in einem integrierten Schaltkreis vereinen, mitunter fließend.
Hauptprozessor, CPU und Prozessorkern
Ein Prozessor besteht primär aus dem Steuer-/Leit- und dem Rechenwerk (ALU). Es gibt jedoch weitere Recheneinheiten, die zwar kein Steuer- bzw. Leitwerk enthalten, aber dennoch oft ebenfalls als Prozessor bezeichnet werden. Diese im Allgemeinen Koprozessor genannten Einheiten stellen in der Regel spezialisierte Funktionen zur Verfügung. Beispiele sind die Gleitkommaeinheit sowie Grafik- und Soundprozessoren. Zur Abgrenzung dieser Koprozessoren zu einem „echten“ Prozessor mit Steuer- und Rechenwerk wird der Begriff CPU (englisch central processing unit
(movw 0x85F2, %bx)
Die Inhalte der Speicherzellen mit den Adresse 85F2h und 85F3h (dezimal: 34290 und 34291) relativ zum Start des Datensegments (bestimmt durch DS) werden in das Register BX geladen. Dabei wird der Inhalt von 85F2h in den niederwertigen Teil BL und der Inhalt von 85F3h in den höherwertigen Teil BH geschrieben.
(addw $15, %bx)
Der Wert 15 wird zum Inhalt des Arbeitsregisters BX addiert. Das Flagregister wird entsprechend dem Ergebnis gesetzt.
Binäre Maschinenbefehle
Maschinenbefehle sind sehr prozessorspezifisch und bestehen aus mehreren Teilen. Diese umfassen zumindest den eigentlichen Befehl, den Operationscode (OP-CODE), die Adressierungsart, und den Operandenwert oder eine Adresse. Sie können grob in folgende Kategorien eingeteilt werden:
- Arithmetische Befehle
- Logische Befehle
- Sprungbefehle
- Transportbefehle
- Prozessorkontrollbefehle
Befehlsbearbeitung
Alle Prozessoren mit höherer Verarbeitungsleistung sind heutzutage Harvard-Architekturen. Die Von-Neumann-Architektur findet man bei kleinen Mikrocontrollern. Der Laie darf sich nicht durch den gemeinsamen Adressraum von Befehlen und Daten eines oder mehrerer Kerne irritieren lassen. Das Zusammenfassen von Befehls- und Datenadressraum findet auf Ebene von Cache-Controllern und deren Kohärenzprotokollen statt. Das gilt nicht nur für diese beiden Adressräume (wo dies meist auf L2-Ebene erfolgt), sondern bei Multiprozessor-Systemen auch zwischen denen verschiedener Kerne (hier erfolgt es meist auf L3-Ebene) bzw. bei Multi-Sockel-Systemen beim Zusammenfassen deren Hauptspeichers.
Mikroprozessoren sind bis auf wenige Ausnahmen (z. B. der Sharp SC61860) interruptfähig, Programmabläufe können durch externe Signale unterbrochen oder aber auch abgebrochen werden, ohne dass das im Programmablauf vorgesehen sein muss. Ein Interrupt-System erfordert zum einen ein Interrupt-Logik (d. h. auf Zuruf einschiebbare Befehle) und zum anderen die Fähigkeit, den internen Zustand des Prozessors zu retten und wiederherzustellen, um das ursprüngliche Programm nicht zu beeinträchtigen. Hat ein Mikroprozessor kein Interruptsystem, muss die Software durch Polling die Hardware selbst abfragen.
Neben der geordneten Befehlsausführung beherrschen vor allem moderne Hochleistungsprozessoren weitere Techniken, um die Programmabarbeitung zu beschleunigen. Vor allem moderne Hochleistungsmikroprozessoren setzen parallele Techniken wie etwa Pipelining und Superskalarität ein, um eine evtl. mögliche parallele Abarbeitung mehrerer Befehle zu ermöglichen, wobei die einzelnen Teilschritte der Befehlsausführung leicht versetzt zueinander sind. Eine weitere Möglichkeit, die Ausführung von Programmen zu beschleunigen, ist die ungeordnete Befehlsausführung (englisch Out-of-order execution), bei der die Befehle nicht strikt nach der durch das Programm vorgegebenen Reihenfolge ausgeführt werden, sondern der Prozessor die Reihenfolge der Befehle selbständig zu optimieren versucht. Die Motivation für eine Abweichung von der vorgegebenen Befehlsfolge besteht darin, dass aufgrund von Verzweigungsbefehlen der Programmlauf nicht immer sicher vorhergesehen werden kann. Möchte man Befehle bis zu einem gewissen Grad parallel ausführen, so ist es in diesen Fällen notwendig, sich für eine Verzweigung zu entscheiden und die jeweilige Befehlsfolge spekulativ auszuführen. Es ist dann möglich, dass der weitere Programmlauf dazu führt, dass eine andere Befehlsfolge ausgeführt werden muss, so dass die spekulativ ausgeführten Befehle wieder rückgängig gemacht werden müssen. In diesem Sinne spricht man von einer ungeordneten Befehlsausführung.
Adressierungsarten
Maschinenbefehle beziehen sich auf festgelegte Quell- oder Zielobjekte, die sie entweder verwenden und/oder auf diese wirken. Diese Objekte sind in codierter Form als Teil des Maschinenbefehls angegeben, weshalb ihre effektive (logische*) Speicheradresse bei bzw. vor der eigentlichen Ausführung des Befehls ermittelt werden muss. Das Ergebnis der Berechnung wird in speziellen Adressierungseinrichtungen der Hardware (Registern) bereitgestellt und bei der Befehlsausführung benutzt. Zur Berechnung werden verschiedene Adressierungsarten (-Varianten) verwendet, abhängig von der Struktur des Befehls, die je Befehlscode einheitlich festgelegt ist.
(*) Die Berechnung der physikalischen Adressen anhand der logischen Adressen ist davon unabhängig und wird in der Regel von einer Memory Management Unit durchgeführt.
Die folgende Grafik gibt einen Überblick über die wichtigsten Adressierungsarten, weitere Angaben zur Adressierung siehe Adressierung (Rechnerarchitektur).
Registeradressierung
Bei einer Registeradressierung steht der Operand bereits in einem Prozessorregister bereit und muss nicht erst aus dem Speicher geladen werden.
- Erfolgt die Registeradressierung implizit, so wird das implizit für den Opcode festgelegte Register mitadressiert (Beispiel: der Opcode bezieht sich implizit auf den Akkumulator).
- Bei expliziter Registeradressierung ist die Nummer des Registers in einem Registerfeld des Maschinenbefehls eingetragen.
- Beispiel: | C | R1 | R2 | Addiere Inhalt von R1 auf den Inhalt von R2; C=Befehlscode, Rn=Register(n)
Einstufige Adressierung
Bei einstufigen Adressierungsarten kann die effektive Adresse durch eine einzige Adressberechnung ermittelt werden. Es muss also im Laufe der Adressberechnung nicht erneut auf den Speicher zugegriffen werden.
- Bei unmittelbarer Adressierung enthält der Befehl keine Adresse, sondern den Operanden selbst; meist nur für kurze Operanden wie '0', '1', 'AB' etc. anwendbar.
- Bei direkter Adressierung enthält der Befehl die logische Adresse selbst, es muss also keine Adressberechnung mehr ausgeführt werden.
- Bei Register-indirekter Adressierung ist die logische Adresse bereits in einem Adressregister des Prozessors enthalten. Die Nummer dieses Adressregisters wird im Maschinenbefehl übergeben.
- Bei der indizierten Adressierung erfolgt die Adressberechnung mittels Addition: Der Inhalt eines Registers wird zu einer zusätzlich im Befehl übergebenen Adressangabe hinzugerechnet. Eine der beiden Adressangaben enthält dabei i. d. R. eine Basisadresse, während die andere ein 'Offset' zu dieser Adresse enthält. Siehe auch Registertypen.
- Beispiel: | C | R1 | R2 | O | Lade Inhalt von R2 + Inhalt (Offset) ins R1; O=Offset
- Bei Programmzähler-relativer Adressierung wird die neue Adresse aus dem aktuellen Wert des Programmzählers und einem Offset ermittelt.
Zweistufige Adressierung
Bei zweistufigen Adressierungsarten sind mehrere Rechenschritte notwendig, um die effektive Adresse zu erhalten. Insbesondere ist im Laufe der Berechnung meist ein zusätzlicher Speicherzugriff notwendig.
Als Beispiel sei hier die indirekte absolute Adressierung genannt. Dabei enthält der Befehl eine absolute Speicheradresse. Das Speicherwort, das unter dieser Adresse zu finden ist, enthält die gesuchte effektive Adresse. Es muss also zunächst mittels die gegebene Speicheradresse im Speicher zurückgegriffen werden, um die effektive Adresse für die Befehlsausführung zu ermitteln. Das kennzeichnet alle zweistufigen Verfahren.
Beispiel: | C | R1 | R2 | AA | Lade nach R1 = Inhalt R2 + an Adr(AA) stehenden Inhalt
Leistungsmerkmale
Die Leistung eines Prozessors wird maßgeblich durch die Anzahl der Transistoren sowie durch die Wortbreite und den Prozessortakt bestimmt.
Wortbreite
Die Wortbreite legt fest, wie lang ein Maschinenwort des Prozessors sein kann, d. h. aus wie vielen Bits es maximal bestehen kann. Ausschlaggebend sind dabei folgende Werte:
- Arbeits- oder Datenregister: Die Wortbreite bestimmt die maximale Größe der verarbeitbaren Ganz- und Gleitkommazahlen.
- Datenbus: Die Wortbreite legt fest, wie viele Bits gleichzeitig aus dem Arbeitsspeicher gelesen werden können.
- Adressbus: Die Wortbreite legt die maximale Größe einer Speicheradresse, d. h. die maximale Größe des Arbeitsspeichers, fest.
- Steuerbus: Die Wortbreite legt die Art der Peripherieanschlüsse fest.
Die Wortbreite dieser Einheiten stimmt im Normalfall überein, bei aktuellen PCs beträgt sie 32 bzw. 64 Bit.
Prozessortakt
Das Taktsignal (englisch clock rate) wird besonders in der Werbung oft als Beurteilungskriterium für einen Prozessor präsentiert. Es wird allerdings nicht vom Prozessor selbst bestimmt, sondern ist ein Vielfaches des Mainboard-Grundtaktes. Dieser Multiplikator und der Grundtakt lässt sich bei einigen Mainboards manuell oder im BIOS einstellen, was als Über- oder Untertakten bezeichnet wird. Bei vielen Prozessoren ist der Multiplikator jedoch gesperrt, sodass er entweder gar nicht verändert werden kann oder nur bestimmte Werte zulässig sind (oft ist der Standardwert gleichzeitig der Maximalwert, sodass über den Multiplikator nur Untertakten möglich ist). Das Übertakten kann zu irreparablen Schäden an der Hardware führen.
CPU-Ausführungszeit = CPU-Taktzyklen × Taktzykluszeit
Weiterhin gilt:
Taktzykluszeit = 1 / Taktrate = Programmbefehle × CPI × Taktzykluszeit
Die Geschwindigkeit des gesamten Systems ist jedoch auch von der Größe der Caches, des Arbeitsspeichers und anderen Faktoren abhängig.
Einige Prozessoren haben die Möglichkeit die Taktrate zu erhöhen, bzw. zu verringern, wenn es nötig ist. Zum Beispiel, wenn hochauflösende Videos angeschaut oder Spiele gespielt werden, die hohe Anforderungen an das System stellen, oder umgekehrt der Prozessor nicht stark beansprucht wird.
Anwendungsbereich
Im Bereich der Personal Computer ist die historisch gewachsene x86-Architektur weit verbreitet, wobei für eine genauere Diskussion dieser Thematik der entsprechende Artikel empfohlen wird.
Interessanter und weniger bekannt ist der Einsatz von Embedded-Prozessoren und Mikrocontrollern beispielsweise in Motorsteuergeräten, Uhren, Druckern sowie einer Vielzahl elektronisch gesteuerter Geräte.
Siehe auch
- Digitaler Signalprozessor (DSP)
- Mikroprogrammsteuerwerk
- Ring (CPU)
- Physikbeschleuniger (PPU)
- Neuromorpher Prozessor (NPU)
- Liste von Mikroprozessoren
Literatur
- Helmut Herold, Bruno Lurz, Jürgen Wohlrab: Grundlagen der Informatik. Pearson Studium, München 2007, ISBN 978-3-8273-7305-2.
Weblinks
- umfassende Sammlung von Prozessoren (englisch)
- FAQ der Usenet-Hierarchie de.comp.hardware.cpu+mainboard.*
- cpu-museum.de Bebildertes CPU-Museum (englisch)
- CPU-Sammlung/CPU-Museum
- Selbstbauprojekt einer CPU aus einzelnen TTL-Bausteinen
- Intel Engineering Samples verifizieren
- 25 Microchips that shook the world, ein Artikel des Institute of Electrical and Electronics Engineers, Mai 2009
Einzelnachweise
<references />
Prozessorarchitekturen nach Wortbreite: 1-Bit-Architektur | Bit-Slice-Architektur | 4-Bit-Architektur | 8-Bit-Architektur | 16-Bit-Architektur | 32-Bit-Architektur | 64-Bit-Architektur
Prozessorarchitekturen nach Befehlssatzaufbau: CISC | EPIC | NISC | RISC | VLIW | Mikroarchitektur
Prozessorarchitekturen mit Optimierung für Einsatzzwecke: (Haupt-)Prozessor | Grafikprozessor | GPGPU | Soundprozessor | Gleitkommaeinheit | Netzwerkprozessor | Physikbeschleuniger