Willkommen auf PROZESSOR-LüFTER.DE

prozessor-lüfter.de bietet Ihnen weiterführende Links auf Webseiten zum Thema prozessorkühler

Startseite > Prozessor

Ein '''Prozessor''' ist ein (meist sehr stark verkleinertes) (meist frei) programmierbares Rechenwerk, also eine Maschine oder eine elektronische Schaltung, die gemäß übergebenen Befehlen andere Maschinen oder elektrische Schaltungen steuert und dabei einen Algorithmus (Prozess) vorantreibt, was meist Datenverarbeitung beinhaltet. Der weitere Artikel beschreibt ausschließlich diese Bedeutung, am Beispiel des Prozessors eines Computers. Am bekanntesten sind Prozessoren als Haupt''prozessor'', ''Zentrale Recheneinheit'' oder (allgemeiner) '''Zentrale Verarbeitungseinheit''' (kurz '''ZVE''', englisch ''''''') für Computer oder computerähnliche Geräte, in denen sie Befehle ausführen; am verbreitetsten sind sie als Mikrocontroller in eingebetteten Systemen (etwa in Waschmaschinen, Ticketautomaten, DVD-Spielern, Smartphones usw.).

Begriffsverständnis

In früherem Sprachgebrauch wurde unter dem Begriff ?Prozessor? sowohl das Bauteil verstanden (ein Halbleiter-Chip in einem Plastikgehäuse, der 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 Prozessor''kern'' 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 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'' (oder kurz, mit der englischen Abkürzung, als '''') bezeichnet. Weitere Synonyme sind ''Zentrale Verarbeitungseinheit'' (kurz ''ZVE'' oder auch ''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 Tabletcomputer 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 () eingesetzt: zur Steuerung von Haushaltsgeräten, Industrieanlagen, Unterhaltungselektronik usw.
In Großrechnern (englisch ) 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.

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 ?? 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 mindestens aus Registern (Speicher), 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 mehreren Stufen, unter anderem den Befehlsdecoder, sowie ein Adresswerk; 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 Simultaneous Multithreading, Hyper-Threading, Out-of-order execution).

Oft ist in heutigen Prozessoren die Memory Management Unit sowie ein (evtl. mehrstufiger) Cache integriert (Level-1-Cache ?L1? bis Level-4-Cache ?L4?). 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 ) oder zu deutsch ''Hauptprozessor'' genutzt.

Moderne Mikroprozessoren sind häufig als sogenannte (APU).

Die klassische Einteilung, dass ein Steuerwerk und eine ALU als ein CPU, Kern bzw. Prozessor bezeichnet werden, verschwimmt zunehmend. Heutige Prozessoren (auch Einkernprozessoren) besitzen oft Steuerwerke, die jeweils mehrere Hardware-Threads verwalten (''Multi-/Hyper-Threading''); das Betriebssystem ?sieht? mehr Prozessorkerne, als tatsächlich (vollwertige) Steuerwerke vorhanden sind. Außerdem betreibt ein Steuerwerk oft mehrere ALUs sowie noch weitere Baugruppen wie z.?B. Gleitkomma-Recheneinheit, Vektoreinheit (siehe auch AltiVec, SSE) oder eine Kryptographie-Einheit. Umgekehrt müssen sich manchmal mehrere Steuerwerke diese Spezial-Recheneinheiten teilen, was eine eindeutige Zuordnung verhindert.

Steuer- bzw. Leitwerk

Das Steuerwerk, auch Leitwerk genannt, kontrolliert die Ausführung der Anweisungen. Es sorgt dafür, dass der Maschinenbefehl im Befehlsregister vom Befehlsdecoder dekodiert und vom Rechenwerk und den übrigen Komponenten der Rechenanlage ausgeführt wird. Dazu übersetzt der Befehlsdecoder binäre Maschinenbefehle mit Hilfe der ''Befehlstabelle'' (englisch </ref>
  1. Das Befehlsregister (englisch ): Es enthält den aktuell auszuführenden Maschinenbefehl.
  2. Der Befehlszähler (englisch ): Dieses Register zeigt bei der Befehlsausführung auf den nächstfolgenden Befehl. (Ein Sprungbefehl lädt die Adresse seines Sprungziels hierher.)
  3. Das ''(Carry)'' ist bei einer Rechenoperation zu berücksichtigen.

In RISC-Prozessoren ist mitunter kein Befehlsdekoder notwendig ? in manchen RISC-Prozessoren verschalten die Befehls-Bits die entsprechenden ALU- und Register-Einheiten direkt. Dort gibt es dann auch keinen Microcode. Die meisten modernen Prozessorarchitekturen sind RISC-artig oder besitzen einen RISC-Kern für die häufigen, einfachen Befehle sowie eine übersetzende Emulationsschicht davor, die komplexe Befehle in mehrere RISC-Befehle übersetzt.

Ebenso kann ein explizites Befehlregister durch eine Pipeline ersetzt sein. Mitunter sind mehrere Befehle gleichzeitig in Bearbeitung, dann kann auch die Reihenfolge ihrer Abarbeitung umsortiert werden (''Out-of-order execution'').

Rechenwerk und Register

Das Rechenwerk führt die Elementaroperationen eines Prozessors durch. Es besteht zum einen aus der arithmetisch-logischen Einheit (ALU), zum anderen aus den Arbeitsregistern. Es kann sowohl arithmetische (etwa die Addition zweier Zahlen) als auch logische (etwa AND oder OR) Operationen ausführen. Aufgrund der Komplexität moderner Prozessoren, bei denen meist mehrere Rechenwerke mit spezialisierten Funktionen vorhanden sind, spricht man auch allgemein vom Operationswerk.

Die Arbeitsregister können Daten (als Datenregister) und, abhängig vom Prozessortyp, auch Adressen (als Adressregister) aufnehmen. Meist können nur mit den Werten in den Registern Operationen direkt ausgeführt werden. Sie stellen daher die erste Stufe der Speicherhierarchie dar. Von den Eigenschaften und insbesondere der Größe und Anzahl der Register (abhängig vom Prozessortyp) hängt u.?a. die Leistungsfähigkeit des jeweiligen Prozessors ab.

Ein spezielles Adressregister ist der Stapelzeiger (englisch ''''), der die Rücksprungadresse bei einem Unterprogrammaufruf aufnimmt. Auf dem Stack werden dann zusätzlich oft Registerkopien gesichert und neue, ''lokale'' Variablen angelegt.

Datenleitungen

Über verschiedene Busse (Signalleitungen) ist der Prozessor mit anderen Komponenten verbunden.
  • Über den Datenbus werden Daten mit dem Arbeitsspeicher ausgetauscht, etwa die Informationen für die Arbeitsregister und das Befehlsregister. Je nach verwendeter Prozessorarchitektur hat ein Hauptprozessor (eine CPU) einen einzigen Bus für Daten aus dem Arbeitsspeicher (Von-Neumann-Architektur) oder mehrere (meist zwei) separate Datenleitungen für den Programmcode und normale Daten (Harvard-Architektur).
  • Der Adressbus dient zur Übertragung von Speicheradressen. Dabei wird jeweils eine Speicherzelle des RAM adressiert (ausgewählt) in die ? je nach Signal des Steuerbusses ? die Daten, die gerade auf dem Datenbus liegen, geschrieben oder aus denen die Daten gelesen, d.?h. auf den Datenbus gelegt, werden.
  • Mit dem Steuerbus (Kontrollbus) steuert der Prozessor u.?a., ob Daten gerade geschrieben oder gelesen werden sollen, ob er einem anderen ''Bus-Master'' im Rahmen eines Speicherdirektzugriffs (DMA) den Bus überlässt, oder der Adressbus statt des RAMs einen Peripherie-Anschluss meint (beim Isolated I/O). Eingangsleitungen lösen beispielsweise einen Reset oder Interrupts aus, versorgen ihn mit einem Taktsignal oder empfangen eine ?Bus-Anforderung? von einem DMA-Gerät.

Zwischen die Datenleitungen und das Registerwerk ist als Teil des Steuerwerks das sogenannte ''Bus-Interface'' geschaltet, das die Zugriffe steuert und bei gleichzeitigen Anforderungen verschiedener Untereinheiten eine Priorisierung vornimmt.

Caches und MMU

Moderne Prozessoren, die in PCs oder anderen Geräten eingesetzt werden, die eine schnelle Datenverarbeitung benötigen, sind mit sogenannten Caches ausgestattet. Caches sind Zwischenspeicher, die die zuletzt verarbeiteten Daten und Befehle zwischenspeichern und so die rasche Wiederverwendung ermöglichen. Sie stellen die zweite Stufe der Speicherhierarchie dar. Normalerweise besitzt ein Prozessor heutzutage bis zu vierstufige Caches:
  • Level-1-Cache (L1-Cache): Dieser Cache läuft mit dem Prozessortakt. Er ist sehr klein (etwa 4 bis 256 Kilobyte), dafür aufgrund seiner Position im Prozessorkern selbst sehr schnell abrufbar.
  • Level-2-Cache (L2-Cache): Der L2-Cache befindet sich meist im Prozessor, aber nicht im Kern selbst. Er umfasst zwischen 64 Kilobyte und 12 Megabyte.
  • Level-3-Cache (L3-Cache): Bei Mehrkernprozessoren teilen sich die einzelnen Kerne den L3-Cache. Er ist der zweit-langsamste der vier Caches, aber meist bereits sehr groß (bis zu 256 Megabyte).
  • Level-4-Cache (L4-Cache): Wenn vorhanden, dann meist außerhalb der CPU auf einem Interposer oder dem Mainboard. Er ist der langsamste der vier Caches (nur selten über 128 Megabyte).

Die Memory Management Unit übersetzt die virtuelle Adressen der in Ausführung befindlichen Prozesse in reale Adressen, für alle Prozessorkerne gleichzeitig, und stellt die Cache-Kohärenz sicher: Ändert ein Kern einen Speicherinhalt, so muss sichergestellt werden, dass die anderen Caches keine veralteten Werte enthalten. Abhängig von ihrer genauen Ansiedlung beinhalten die Cache-Stufen Daten entweder bezüglich virtueller oder realer Adressen.

Verarbeitung eines einzelnen Befehls

Um die Rollen der Untereinheiten konkreter zu veranschaulichen, hier der Ablauf der Verarbeitung eines einzelnen Maschinenbefehls. Die aufgeführten Einzelschritte können teilweise gleichzeitig oder überlappend ablaufen, die Nummerierung hat nichts mit der Anzahl der Taktzyklen zu tun, die der Befehl benötigt. Zusätzliche Feinheiten wie Prozessor-Pipelines oder Sprungvorhersage (Branch Prediction) führen zu weiteren Timing-Finessen, die hier im Sinne der Vereinfachung vorerst weggelassen werden. Aus dem gleichen Grund sind komplexe Berechnungen abhängig von der gewählten Adressierungsart zur Ermittlung einer endgültigen Speicheradresse nicht erwähnt.

  1. Laden des nächsten Befehls: Der Befehlszähler, der die Adresse des nächsten Befehls enthält, wird vom Steuerwerk über das Bus-Interface auf den Adressbus gelegt; dann wird ein Leseimpuls an die Speicherverwaltung signalisiert.
    Der Befehlszähler wird parallel dazu auf die nächste Adresse weitergezählt.
  2. Die Speicherverwaltung legt den Datenwert aus dieser (virtuellen) RAM-Adresse auf die Datenleitungen; sie hat den Wert im Cache oder im RAM gefunden. Nach der Verzögerung durch die endliche Zugriffszeit des RAMs liegt an den Datenleitungen der Inhalt dieser Speicherzelle an.
  3. Das Steuerwerk kopiert diese Daten über das Bus-Interface in das Befehlsregister.
  4. Der Befehl wird vor-decodiert, ob er komplett geladen ist.
    1. Wenn es ein Befehl ist, der aus mehreren Bytes besteht, werden sie (falls das durch eine größere Busbreite nicht schon geschehen ist) durch Wiederholung der Schritte 1 bis 4 aus dem Speicher geholt und in die zuständigen Prozessorregister kopiert.
    2. Gehört zum Befehl auch das Auslesen einer Speicherzelle des RAMs, wird vom Steuerwerk die Adresse für diese Daten auf die Adressleitungen gelegt, ein Leseimpuls wird signalisiert. Danach muss genügend lange Zeit gewartet werden, dass das RAM diese Informationen sicher bereitstellen konnte. Anschließend wird der Datenbus ausgelesen und in das zuständige Prozessorregister kopiert.
  5. Der Befehl wird fertig-decodiert und die zu seiner Abarbeitung benötigten Untereinheiten aktiviert, die internen Datenpfade werden entsprechend geschaltet.
  6. Das Rechenwerk erledigt die eigentliche Verarbeitung innerhalb des Prozessors, beispielsweise die Addition zweier Registerinhalte. Das Ergebnis landet wieder in einem der Prozessorregister.
  7. Wenn der Befehl ein Sprung- oder Verzweigungsbefehl ist, wird das Ergebnis nicht in einem Datenregister abgelegt, sondern im Befehlszähler.
  8. Das Steuerwerk aktualisiert je nach Ergebniswert ggf. das Statusregister mit seinen Zustandsflags.
  9. Gehört zum Befehl auch das Rückspeichern eines Ergebnisses/Registerinhalts in das RAM, wird vom Steuerwerk die Adresse für diese Daten auf die Adressleitungen gelegt und der Dateninhalt auf die Datenleitungen, ein Schreibimpuls wird signalisiert. Danach muss genügend lange Zeit gewartet werden, dass das RAM diese Informationen sicher aufnehmen konnte.
  10. Der Befehl ist jetzt abgearbeitet, und es kann oben bei Schritt 1 zum nächsten Befehl weitergeschritten werden.

Verschiedene Architekturen

 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 ).
  • 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' usw. 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

Die Taktrate () 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

Literatur

  • Helmut Herold, Bruno Lurz, Jürgen Wohlrab: ''Grundlagen der Informatik''. Pearson Studium, München 2007, ISBN 978-3-8273-7305-2.

Weblinks

Einzelnachweise