| Inhaltsverzeichnis
|  | Übersicht Kapitel 2
1.3 Entwicklungsgeschichte der Mikroprozessor-Technik |  | 2.2 Das Steuerwerk

## 2.1 Basisarchitektur eines Mikroprozessors

- 2.1.1 Gehäuse und Anschlüsse
- 2.2.2 Interner Aufbau eines Mikroprozessors

### 2.1.1 Gehäuse und Anschlüsse |

Mikroprozessoren sind elektronische Bausteine, die aus bis zu einigen Millionen Transistoren, Widerständen und Kondensatoren bestehen. Alle diese Bauelemente sind auf einer wenige Quadratmillimeter bis Quadratzentimeter großen Halbleiterfläche aus einkristallinem Silizium, dem Chip, integriert. Je nach Komplexitätsgrad und Technologie haben Mikroprozessoren eine Leistungsaufnahme zwischen 0.5 und 85 Watt. Der Chip ist zur Erhöhung der mechanischen Stabilität, zur Ableitung der entstehenden Wärme und zur Erleichterung der Verbindung mit anderen Bausteinen in einem Gehäuse aus Plastik oder Keramik untergebracht. Im Bild 2.1-1 sind einige der gebräuchlichsten Gehäusetypen dargestellt.

Bild 2.1-1: Photo der gebräuchlichsten Gehäusetypen

Die Typen A und B zeigen die frühesten Gehäuse für µPs, die heute nur noch bei einfachen µCs eine Bedeutung besitzen. Sie haben zwei parallele Reihen von Anschlußstiften (Leads, Pins) und werden deshalb als Dual In-line Packages (DIP) bezeichnet. Die Gesamtzahl der Pins ist aus mechanischen Gründen begrenzt und liegt bei maximal 64. Der Typ A im Bild 2.1-1 zeigt ein Gehäuse mit 64 Anschlüssen. In der Mitte dieses Gehäuses erkennen Sie eine Metallplatte, unter der der eigentliche Halbleiterchip liegt. 8-bit-Prozessoren sowie ihre Peripheriebausteine kommen in der Regel mit 40 Pins aus (Typ B). Im Bild 2.1-2a ist die Pinbelegung für ein DIP-Gehäuse mit 40 Pins gezeichnet. Pin 1 ist am Gehäuse meistens besonders gekennzeichnet.
Typ C im Bild 2.1-1 ist ein sogenanntes Quad-Pack-Gehäuse, bei dem die Anschlüsse als Kontakte einreihig an allen vier Seiten des Bausteins zu erkennen sind (Plastic Leadless Carrier Chip - PLCC). Die Gehäuse müssen in spezielle Sockel eingesetzt werden, die durch Federkontakte die Verbindung des Bausteins zu den Leiterbahnen und damit zu den anderen Bausteinen ermöglichen. Bei anderen Varianten dieses Gehäuses sind die Kontakte als Stifte oder Lötfahnen ausgebildet und erlauben so die direkte Verbindung mit einer Leiterplatte. Gerade die letztgenannte Variante mit Lötfahnen hat in den letzten Jahren eine immer größere Bedeutung bekommen, da bei ihr eine Befestigung auf der Oberseite der Platine ohne die üblicherweise benötigten Kontaktlöcher möglich ist (Surface Mount Technology - SMT). In Bild 2.1-2b ist eine mögliche Numerierung der Anschlußbeine für ein Gehäuse mit 68 Pins gezeichnet.
Die Gehäusetypen D und E im Bild 2.1-1 werden wegen ihrer matrixförmigen Anordnung der Pins mit einem Nagelbrett (Bed of Nails) verglichen. Sie heißen Pin-grid Arrays (PGA). Bei ihnen werden heute bis zu einigen hindert Pins realisiert. Eine mögliche Anordnung und Numerierung der Pins ist im Bild 2.1-2c dargestellt. Sie ist in einer quadratischen Form (bis zu 17 Reihen und 17 Spalten) gegeben, wobei die Zeilen beispielsweise durch Buchstaben, die Spalten durch Zahlen bezeichnet werden. Bei anderen Varianten werden die Pins z.B. im Uhrzeigersinn abwechselnd durch die verschiedenen Pin-Ringe durchgezählt. Pin 1 ist durch eine abgeschrägte Gehäuseecke angezeigt, die außerdem verhindert, daß der Baustein falsch in einen Sockel eingesetzt wird. (Beim Gehäusetyp D im Bild 2.1-1 wurde nur aus Darstellungsgründen die Metallplatte entfernt, die den Chip vor Beschädigungen aller Art schützen soll.)

Bild 2.1-2: Die Anordnung der Anschlußkontakte bei verschiedenen Gehäuseformen

Die Vergrößerung in Bild 2.1-3 zeigt Ihnen für einen Baustein mit 132 Anschlüssen den ca. 100 mm2 großen Chip mit seinen deutlich unterscheidbaren Bereichen. Außerdem sehen Sie die Verbindungen des Chips zu flachen Gehäusekontakten über feine Golddrähte, die beim uns vorliegenden Muster leider stark verbogen waren, sowie die 132 Anschlußpins, die durch Leiterbahnen im Gehäuse mit den Flachkontakten verbunden sind.
Die oben stehende Aufzählung gebräuchlicher Gehäusetypen ist in keiner Weise vollständig. In den letzten Jahren haben insbesondere die BGA-Gehäuse (Ball Grid Array) eine wesentliche Bedeutung erlangt, bei der die Anschlüsse (wie beim PGA) an der Unterseite des Gehäuses - auch auf dem Chip selbst - herausgeführt und durch kleine Lötkügelchen (englisch: Balls) auf der Platinenoberfläche befestigt werden. Daneben gibt es noch eine ganze Reihe weiterer Gehäuse, deren Zahl ständig wächst und deren Beschreibung den Rahmen dieses Kurses sprengen würde.

Bild 2.1-3: Großaufnahme eines Pin-Grid-Array-Gehäuses

Im Bild 2.1-4 ist eine Vergrößerung einer Chipoberfläche (Chiplayout) dargestellt, die Ihnen nur einen Eindruck von der Komplexität der Strukturen geben soll. Es handelt sich um das Photo eines sehr erfolgreichen, nach heutigen Maßstäben aber sehr einfachen Mikroprozessors, des Motorola MC68000, der - wie sein Name andeuten sollte - aus ca. 68000 Transistoren besteht. (Die Umrandungen kennzeichnen die unterscheidbaren Komponenten des Prozessors, die wir in diesem Kurs ausführlicher beschreiben werden.)

Bild 2.1-4: Chiplayout des Motorola MC68000

Im Bild 2.1-5 sind die verschiedenen Gruppen von Signalen gezeigt, wie sie an den Anschlüssen eines Mikroprozessors vorliegen.
Die erste Gruppe dient der Spannungsversorgung des Bausteins. Im Minimalfall gibt es nur jeweils einen Anschluß für die Masse (Ground - GND) und die positive Betriebsspannung. Während in den Anfangsjahren der µP-Technik als einzige positive Betriebsspannung +5 V eingesetzt wurde, sind bei modernen Prozessoren eine breite Palette von Betriebsspannungen anzutreffen, die zwischen 1,2 V und 5 V liegen. Dabei werden häufig der Prozessorkern und die Prozessorperipherie mit unterschiedlichen Spannungen betrieben, der Kern mit einer sehr niedrigen, die Peripherie mit einer höheren. Bei höher integrierten µPs, insbesondere in Pin-/Ball-Grid-Array-Gehäusen existieren jeweils bis zu einigen Dutzend Anschlüsse für jede Betriebsspannung und Masse. Außerdem kann man zu dieser Gruppe noch die Anschlüsse für den Quarz zur Stabilisierung der Frequenz des Systemtaktes zählen.

Bild 2.1-5: Anschlußbelegung eines Mikroprozessors

Die nächste Gruppe umfaßt die Adreßsignale, die die Quelle ('woher?') oder das Ziel ('wohin?') eines Datentransports bestimmen. Quelle oder Ziel kann dabei eine Baugruppe, ein Baustein oder ein einzelnes Register sein. Diese Signale bilden den externen Adreßbus des Prozessors. Es handelt sich i.d.R. um Ausgangssignale. Bei Prozessoren mit internen (Cache-)Speichern können diese Anschlüsse aber häufig auch zur Eingabe von Adressen benutzt werden. Moderne Mikroprozessoren besitzen zwischen 16 und 44 Adreßleitungen, die logisch zum Adreßbus zusammengefaßt werden. Damit sind maximal 216 bis 244 Speicherzellen, also 64 kbyte bis 16 Terabyte adressierbar. (Wie oben bereits gesagt, besitzen Harvard-Prozessoren zwei getrennte Adreßbusse.)
Eine weitere Gruppe wird von den Datensignalen gebildet. Davon besitzen die Mikroprozessoren zwischen 4 und 128. Typische Anzahlen sind alle Potenzen von zwei, also 4, 8, 16, 32, 64, 128. Diese Signale werden zum Datenbus zusammengefaßt. Über den Datenbus werden einerseits die auszuführenden Befehle aus dem Speicher in den µP, andererseits die Operanden ('womit?') zwischen der CPU und den verschiedenen Komponenten des Systems transportiert (von-Neumann-Architektur). Dieser Transport kann in der Regel in beiden Richtungen, also bidirektional stattfinden. (Wie oben bereits gesagt, besitzen Harvard-Prozessoren zwei getrennte Datenbusse.)
Alle übrigen Signale, die vom Prozessor weg bzw. zu ihm hin führen, werden (logisch) zum Steuerbus zusammengefaßt, obwohl sie sehr unterschiedliche Funktionen besitzen. Sie dienen zur Auswahl einer bestimmten Systemfunktion, zur Synchronisierung der Komponenten und ihrer Steuerung. Die Mehrzahl von ihnen wird vom Steuerwerk (s. Abschnitt 2.2) kontrolliert.
Wie bereits erwähnt, werden Adreßbus, Datenbus und Steuerbus zusammen als Systembus bezeichnet.
Die Daten-/Adreß-Bus-Steuersignale geben z.B. die Richtung des Datentransports vor, unterscheiden zwischen Speicherzugriffen und Zugriffen auf Peripheriebausteine, zeigen das Vorliegen einer gültigen Adresse auf dem Adreßbus an oder schalten Adreß- und Datenbus in einen hochohmigen Zustand (Tristate). Sie beantworten also die Frage, 'was' mit den Daten passieren soll.
Die System-Steuersignale werden vom Mikroprozessor erzeugt und steuern die Komponenten des Systems. Dazu gehören insbesondere bestimmte Systemtakte und Rücksetzsignale (Reset). Über die Prozessor-Statussignale kann der Prozessor den angeschlossenen Komponenten seinen augenblicklichen Zustand mitteilen, insbesondere welche Aktivität er gerade ausführt. Über die System-Statussignale (Meldesignale) können ihrerseits die Komponenten dem Prozessor Informationen zukommen lassen, z.B. über den Wunsch, den Bus zu benutzen, über die Ausführung oder das Beenden einer verlangten Operation, über das Auftreten eines Fehlers etc.
Die nächste Gruppe bilden die Unterbrechungssignale, über die eine Komponente vom Prozessor die Unterbrechung oder den Abbruch des laufenden Programms fordern kann (s. Abschnitt 2.2). Dazu zählt insbesondere die Aufforderung zum Zurücksetzen (Reset) des Systems in einen definierten Anfangszustand.
Häufiger wurde bereits erwähnt, daß moderne Mikroprozessoren auf dem Chip bereits schnelle Cache-Speicher besitzen. Viele Hochleistungsprozessoren bieten eine Schnittstelle (mit z.B. 128 Steuer- und Datensignalen), über die der interne Speicher durch einen externen Cache-Speicher erweitert werden kann.
Die Komplexität moderner Halbleiterbausteine und der eingesetzten Platinen erfordert die Möglichkeit, die Bausteine und ihre Verbindungsleitungen im System testen zu können. Dazu hat sich eine international genormte Schnittstelle mit 5 Signalen im weiten Umfang durchgesetzt, der sog. JTAG-Port (Joint Test Action Group).

Exkurs 2.1.1: Zur Beschreibung der Signale
Zum Begriff TTL-Pegel Für die Spannungswerte, die den binären (logischen) Zuständen '0' und '1' an einem Prozessor-Ausgang bzw. -Eingang entsprechen, hatte sich (bis vor einigen Jahren) die im Bild 2.1-6 skizzierte TTL-Norm international durchgesetzt. (Die Abkürzung TTL bedeutet &qout;Transistor-Transistor-Logik&qout; und leitet sich von einer Bausteinfamilie ab, bei der die Schaltkreise hauptsächlich aus bipolaren Transistoren aufgebaut sind.) Mit der oben beschriebenen Herabsetzung und Variation der positiven Betriebsspannungen haben sich viele, z.T. Firmen-spezifische, Spannungsverhältnisse ergeben, so daß kein allgemein anerkannter Standard mehr zu finden ist. Bild 2.1-6: Zur Definition der TTL-Pegel Ein Potential wird als L(ow)-Pegel bezeichnet, wenn es im Potentialbereich liegt, der dem logischen '0'-Zustand zugeordnet ist. Entsprechend heißt ein Potential im Bereich der logischen '1' ein H(igh)-Pegel. Dem Bild können Sie die folgenden Pegelbereiche entnehmen:
Eingang: | L-Pegel: 0 - 0.8 V(olt); | H-Pegel: 2.0 - 5.5 V;
Ausgang: | L-Pegel: 0 - 0.4 V; | H-Pegel: 2.4 - 5.0 V.
Zur Bezeichnung der Signale Nach ihrer Funktion kann man bei den Steuersignalen zwischen Aktivierungssignalen und Auswahlsignalen unterscheiden. Die Aktivierungssignale besitzen einen aktiven und einen passiven Zustand. Der aktive Zustand zeigt häufig das Vorliegen einer bestimmten Situation an oder spricht eine bestimmte Komponente des Systems an. Durch eine Überstreichung des Signalnamens wird üblicherweise angezeigt, daß der L-Pegel dem aktiven Signalzustand entspricht. So zeigt z.B. der Signalname an, daß das System durch einen L-Pegel in den Grundzustand zurückgesetzt wird. Anstelle der Überstreichung werden - zur Vereinfachung - häufig auch die Schreibweisen: RESET# , RESET/ oder -RESET benutzt. Überwiegend wird der L-Pegel zur Kennzeichnung des aktiven Zustands benutzt, da in vielen Bausteintechnologien das Umschalten in den L-Zustand schneller als in den H-Zustand vor sich geht. Die Auswahlsignale selektieren genau einen von zwei möglichen Zuständen. Sie werden üblicherweise in der Schreibweise A1/ angegeben, wobei die Überstreichung wiederum angibt, daß die Alternative A2 durch einen L-Pegel des Signals bestimmt wird. Z.B. zeigt das Signal R/ (Read/Write) an, daß durch einen H-Pegel ein Lesezugriff, durch einen L-Pegel ein Schreibzugriff ausgelöst wird. Die Festlegung, welcher Pegel eines Signals eine bestimmte Alternative auswählt, wird vom Bausteinhersteller mehr oder weniger willkürlich getroffen. Auswahlsignale mit gleicher Funktion haben daher häufig bei Bausteinen verschiedener Hersteller verschiedene Pegelzuordnungen. Zur Vereinfachung der Schreibweise werden wir im Text die Überstreichung eines Signalnamens immer dann weglassen, wenn es dadurch zu keinen Verständnisschwierigkeiten kommen kann. So sprechen wir z.B. vom RESET-Signal und lassen dabei offen, welcher Pegel zum Rücksetzen des Prozessors führt. Analog sprechen wir auch vom Signal R/W und verzichten auf die Überstreichung der 2. Alternative.

### 2.1.2 Interner Aufbau eines Mikroprozessors |

Der rasante Fortschritt der Großintegrationstechnik (vgl. Bild 1.3-3) ermöglicht es, immer mehr Komponenten eines Mikrocomputers auf dem Prozessorchip selbst unterzubringen. Zu den Komponenten, die seit dem Motorola MC68040 oder dem Intel 80468 bereits auf dem Chip fast aller universellen Prozessoren integriert sind, gehören insbesondere die folgenden Einheiten:

- schnelle (Cache-)Zwischenspeicher,
- Speicherverwaltungseinheit (Memory Management Unit - MMU),
- Gleitpunkt-Arithmetikeinheit (Floating Point Unit - FPU),

Zur Vereinfachung der Darstellung beziehen wir uns in diesem Kurs jedoch nicht auf den letzten Stand der Technik, sondern überwiegend auf einen Stand, wie er heute noch für den Prozessorkern der weitverbreiteten 4/8/16-bit-Mikrocontroller mit von-Neumann-Architektur typisch ist. Bild 2.1-7 zeigt den prinzipiellen Aufbau eines solchen Mikroprozessors. Im folgenden wollen wir seine Komponenten ausführlicher beschreiben.
Das Steuerwerk (Control Unit, s. Abschnitt 2.2) kontrolliert die Steuersignale zu den Komponenten des Systems, sowohl den prozessorinternen wie den prozessorexternen. Insbesondere sorgt es mit Hilfe des vom Taktgenerator erzeugten Systemtaktes für den zeitgerechten Ablauf aller Vorgänge im System. Es erzeugt außerdem die Statussignale des Prozessors. Zum Steuerwerk gehört das Befehlsregister (BR), das den augenblicklich ausgeführten Befehl zwischenspeichert. Eine weitere Hauptkomponente des Steuerwerks ist die Unterbrechungslogik, die die Bearbeitung aller anstehenden Unterbrechungsanforderungen zur Aufgabe hat (s. Abschnitt 2.3).

Bild 2.1-7: Prinzipieller Aufbau eines (einfachen) Mikroprozessors

Das Operationswerk (Rechenwerk, Execution Unit, s. Abschnitt 2.4) führt im einfachen Fall die vom Steuerwerk verlangten arithmetischen und logischen Operationen aus. Daher wird es auch als arithmetisch/logische Einheit (Arithmetic and Logical Unit - ALU) bezeichnet. Durch das Statusregister informiert es das Steuerwerk über die Größe des Ergebnisses (=0, ³ 0, <0 etc.). Komplexere Prozessoren besitzen mehrere Rechenwerke, die speziellen Aufgaben zugeordnete Operationen ausführen. Beispiele sind Rechenwerke für Gleitpunkt-Zahlen (Floating Point Uni - FPU), zur Manipulation einzelner Bits oder für Algorithmen der graphischen Datenverarbeitung.
Häufiger benutzte Operanden - Daten oder Adressen - werden im Registersatz (Register Set, s. Abschnitt 2.6) zwischengespeichert, auf den schneller als auf den externen Speicher zugegriffen werden kann. Einfache Prozessoren enthalten nur einige wenige Register (bis zu 8), RISC-Prozessoren bis zu einigen Hundert Registern.
Das Adreßwerk (Address Unit - AU, s. Abschnitt 2.5) berechnet nach den Vorschriften des Steuerwerks die Adresse eines Operanden oder eines Befehls im Speicher. Prozessoren mit Harvard-Architektur oder DSPs verfügen über mehrfache Adreßwerke, um gleichzeitig auf Befehle und Daten oder mehrere Daten zugreifen zu können. Zur Zwischenspeicherung der Adressen besitzt das Adreßwerk zwei Pufferregister: Der Programmzähler (PC), der auch Befehlszähler genannt wird (Program Counter, Instruction Pointer), enthält stets die Adresse der Speicherzelle, in der der nächste auszuführende Befehl (oder Befehlsteil) liegt. Die für die Ausführung eines Maschinenbefehls benötigten Operanden werden durch das Adreßpufferregister selektiert. Dieser Adreßpuffer (AP) wird vom Adreßwerk mit der Adresse des Operanden geladen, die nach bestimmten fest vorgegebenen Verfahren berechnet wird. (Diese als Adressierungsarten bezeichneten Verfahren werden Sie im Abschnitt 3.3, kennenlernen.)
Die Systembus-Schnittstelle (Systembus Interface, s. Abschnitt 2.7) stellt ein Zwischenspeicher-Register (Puffer) für die kurzzeitige Aufbewahrung jedes Datums (Datenbuspuffer) auf seinem Weg in den Prozessor bzw. aus ihm heraus zur Verfügung. Damit dient sie der zeitlichen Anpassung zwischen dem schnellen Prozessor und der langsameren externen Peripherie - insbesondere dem Daten- und Befehlsspeicher. Andererseits übernimmt sie durch Ausgangstreiber die elektrische Anpassung der Prozessorsignale an die Signalspezifikationen, die von allen Systemkomponenten verlangt werden. Diese Treiber können die Ausgangssignale in den hochohmigen Zustand (Tristate) (Als Systembus bezeichnen wir hier, wie auch später häufig, einschränkend nur die Zusammenfassung von Adreß- und Datenbus sowie denjenigen Steuerleitungen, die die Datenübertragung über diesen Bus beeinflussen.)versetzen und dadurch den externen Systembus für andere Systemkomponenten freigeben. Bei Mikrocontrollern findet man in der Systembus-Schnittstelle noch weitere Komponenten, die die Integration des Prozessors in das Gesamtsystem erleichtern sollen. Dazu gehören z.B. programmierbare Schaltnetze zur Selektion bestimmter Adreßbereiche (Adreßdecoder) oder Schaltungen zur Beeinflussung des Zeitverhaltens oder der Struktur des externen Systembusses (Einfügen von Wartezyklen. Steuerung der Busbreite, Abschnitt 2.7).
Die Komponenten des Mikroprozessors sind durch ein System von internen Bussen miteinander verbunden. Im Unterschied zum externen Bussystem kann hier jedoch nicht eindeutig zwischen einem Adreß- und Datenbus unterschieden werden. Denn über den internen Datenbus werden beide Informationsarten übertragen, je nachdem, ob eine Operanden- oder Adreßberechnung durchgeführt werden soll.
Eine Erhöhung der Arbeitsgeschwindigkeit des Prozessors erreicht man - außer durch eine Erhöhung der Frequenz des Systemtaktes - dadurch, daß möglichst viele der beschriebenen Komponenten gleichzeitig, nach Art einer Fließbandfertigung verschiedene Programmbefehle bearbeiten. Diese Arbeitsweise wird Pipelining genannt. So kann z.B. während der Abarbeitung einer Operation im Rechenwerk das Adreßwerk bereits die Operandenadresse des nächsten Befehls berechnen und das Steuerwerk bereits den übernächsten Befehl interpretieren. Schon beim Motorola MC68040, einem CISC-Prozessor, konnten z.B. bis zu 14 Befehle gleichzeitig in mehreren Pipelines verarbeitet werden.

| Inhaltsverzeichnis
|  | Übersicht Kapitel 2
1.3 Entwicklungsgeschichte der Mikroprozessor-Technik |  | 2.2 Das Steuerwerk