Taschenbuch Mikroprozessortechnik von Thomas Beierlein, Olaf Hagenbruch 3., aktualisierte und erweiterte Auflage Hanser München 2004 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 22072 0 Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG
1 Einführung Thomas Beierlein, Olaf Hagenbruch 1 Mikroprozessoren sind das zentrale Bauelement eines jeden Mikrocomputers. Sie stehen in verschiedenen Ausführungen und für unterschiedliche Anwendungen zur Verfügung und bestimmen zunehmend unser Lebensumfeld. Waren in der Vergangenheit Mikroprozessoren hauptsächlich für numerische Berechnungen im Einsatz, so sind viele neue Applikationen, z. B. im Bereich der Kommunikations- und Automatisierungstechnik, in Kraftfahrzeugen und bei Chipkarten, erst mit diesen hochintegrierten elektronischen Bauelementen möglich geworden. Grenzen dieser Entwicklung im Sinne von Anwendungsmöglichkeiten und Leistungsfähigkeit sind gegenwärtig nicht erkennbar. Für bestimmte Anwendungsbereiche ist eine Spezialisierung von Mikroprozessoren erfolgt, was in unterschiedlichen Architekturen und deren Implementierung zum Ausdruck kommt. 1.1 Gegenstand der Mikroprozessortechnik /1.1/, /1.2/, /1.3/, /1.4/, /1.8/, /1.10/, /1.12/, /1.13/, /1.14/ Als dominante Form der Datenverarbeitung hat sich die digitale elektronische Datenverarbeitung durchgesetzt. Die Darstellung der Daten erfolgt dabei in binärer Form entsprechend den Regeln der binären Digitaltechnik ( 2). Zur Verarbeitung werden Daten in digitalisierter Form über das Eingabesystem einer zentralen Verarbeitungseinheit zugeführt. Entsprechend einem Programm (Verarbeitungsalgorithmus), das in einem Programmspeicher abgelegt ist, führt die Verarbeitungseinheit die Regeln des Programms aus. Ein Arbeitsspeicher dient dabei zur temporären Zwischenspeicherung von Eingabeund Ausgabedaten, Parametern und Zwischenergebnissen. Ergebnisse der Verarbeitung werden in digitaler Form über ein Ausgabesystem einer weiteren Nutzung zur Verfügung gestellt. Durch den Austausch des Programms kann die Arbeitsweise der gesamten Datenverarbeitungseinrichtung ohne eine Veränderung der Hardware modifiziert werden ( Bild 1.1). Programmgesteuerte Datenverarbeitungsanlagen werden im weitesten Sinne als Rechner oder Computer bezeichnet. Anmerkung: Computer sind in unterschiedlichsten Ausführungen und Anwendungen im Einsatz. So unterscheiden sich Großrechner, Prozessrechner, Personalcomputer, PDAs und Chipkarten als beispielhaft ausgewählte Anwendungsfälle in
18 1 Einführung ihrem Volumen, der Portabilität, der Datenverarbeitungsgeschwindigkeit und in vielen weiteren Eigenschaften. Zentrale Verarbeitungseinheit Arbeitsspeicher Eingabesystem Ausgabesystem Programmspeicher Bild 1.1 Grundstruktur einer programmgesteuerten Datenverarbeitungsanlage Der Kern eines Computers ist die zentrale Verarbeitungseinheit (Central Processing Unit, CPU). Diese besteht im Wesentlichen aus den Komponenten Steuerwerk, Rechenwerk, mehreren Registern und einem Verbindungssystem zur Ankopplung von Speicher- und Peripheriekomponenten ( Bild 1.2, 1.3). Zentraleinheit (CPU) Steuerwerk Register Rechenwerk Verbindungssystem (Bus) Daten- und Programmspeicher Ein-/Ausgabe- Komponenten Bild 1.2 Prinzipieller Aufbau eines Computers Die Arbeitsweise der CPU und der angekoppelten Ein-/Ausgabe-Komponenten ist bestimmt durch ein Computerprogramm, welches für eine konkrete Anwendung des Computers generiert wurde.
1.1 Gegenstand der Mikroprozessortechnik 19 Unter einem Computerprogramm (Computer Program) versteht man dabei eine Folge von Anweisungen oder Befehlen, die direkt oder indirekt im Computer benutzt werden, um gezielt ein bestimmtes Resultat herbeizuführen. 1 Ende der 60er-Jahre führten Fortschritte in der Halbleitertechnologie, eine zunehmende Dezentralisierung bei der Steuerung von Maschinen und Anlagen und der Drang zu weiterer Miniaturisierung von Bauelementen zu Impulsen für die Realisierung einer vollständigen Verarbeitungseinheit auf einem Chip ( Bild 1.3). VLSI-Technologie ermöglicht > 3000 Transistoren je Chip Fertigung von Halbleiterbauelementen nur in hohen Stückzahlen rentabel Drang nach weiterer Miniaturisierung CPU auf einem Chip = MP Visionen für neue Rechneranwendungen Übergang zur dezentralen Steuerung von Maschinen und Anlagen Bild 1.3 Anstöße zur Entwicklung des Mikroprozessors (MP) Programmierbarkeit führt zu universellen Einsatzmöglichkeiten und zu hohen Stückzahlen Ein Mikroprozessor (Microprocessor) ist die auf einem Chip realisierte CPU eines Computersystems. Anmerkung: Es sind Einzellösungen bekannt, bei denen eine CPU aus mehreren Chips besteht. Beim Entwurf von Mikroprozessoren führten unterschiedliche Ansätze, technologische Varianten und unterschiedliche Anwendungsrichtungen zu verschiedenen Architekturen und deren Ausführung (Implementierung). Zu den Architekturmerkmalen eines Mikroprozessors gehören z. B. der Registersatz, der Befehlssatz, das Speichermodell und der Adressraum. Wie diese Funktionalität durch Hardware, Datenpfade und Logik für den konkreten Mikroprozessor ausgeführt ist, wird durch die Implementierung einer gewählten Architektur spezifiziert. Mikroprozessoren mit gleicher Architektur sind binärkompatibel, verschiedene Implementierungen können zu unterschiedlichen Verarbeitungsgeschwindigkeiten führen ( 3 und 10).
20 1 Einführung Die Mikroprozessortechnik (Microprocessor Technology) befasst sich mit der Architektur, der Entwicklung, der Implementierung, dem Bau, der Programmierung und dem Einsatz von Mikroprozessoren. Rechner bzw. Computer, bei denen Mikroprozessoren zum Einsatz kommen, werden als Mikrorechner bzw. Mikrocomputer (Microcomputer) bezeichnet. Anmerkung: Mithilfe mehrerer miteinander gekoppelter Mikroprozessoren werden z. B. auch Großrechner realisiert. Die zunehmende Dezentralisierung von Mikrocomputeranwendungen und die Fortschritte bei der Hochintegration führten zu einer Spezialisierung von Mikroprozessoren, sodass folgende Klassifizierung vorgenommen werden kann: Standardmikroprozessoren für den allgemeinen Einsatz (z. B. für Personalcomputer, Drucker, Protokollumsetzer), Hochleistungsmikroprozessoren für Computer mit sehr hoher Verarbeitungsleistung für große Datenmengen (z. B. für Großrechner, Workstations), Mikrocontroller (MC) für Anwendungen im Bereich des Embedded-Control (z. B. für das Motormanagement in Kraftfahrzeugen, Kommunikationselektronik), Digitale Signalprozessoren (DSP) für die digitale Verarbeitung analoger Signale (z. B. für Signalsynthese, Audio- und Videosignalverarbeitung). Fortschritte bei der Hochintegration Mitte der 70er-Jahre machten die zusätzliche Integration peripherer Komponenten auf einem Chip möglich, so dass der Mikrocontroller entstand. Mikrocontroller (Microcontroller) sind vollständige Mikrocomputersysteme auf einem Chip. Neben der CPU sind Speicher und Peripheriekomponenten mit auf dem Chip integriert ( 7). Während bei Mikrocontrollern die On-Chip integrierte Funktionalität im Mittelpunkt steht, ist bei Hochleistungsmikroprozessoren und digitalen Signalprozessoren die Verarbeitungsgeschwindigkeit der Hauptparameter. Digitale Signalprozessoren (Digital Signal Processor) sind Spezialprozessoren für die sehr schnelle Verarbeitung von mathematischen Befehlen zur Bearbeitung komplexer Algorithmen der analogen Signalverarbeitung. Speziell zum Aufbau leistungsfähiger Mehrprozessorsysteme wurde der Transputer konzipiert, der On-Chip zusätzlich zur CPU Komponenten zum schnellen Datenaustausch zwischen mehreren Transputern enthält.
1.2 Historische Entwicklung 21 Transputer (Transputer) dienen dem Aufbau von Parallelrechnern und bestehen aus einer schnellen CPU, SRAM, einer programmierbaren Schnittstelle für externen Speicher und mehreren seriellen Kommunikationsschnittstellen. 1 1.2 Historische Entwicklung /1.3/, /1.5/, /1.6/, /1.7/, /1.9/, /1.10/, /1.12/ Die Idee der Integration einer CPU auf einem einzigen Chip setzte Ende der 60er-Jahre auf dem erreichten Entwicklungsstand der Computertechnik, den Möglichkeiten der Halbleitertechnologie und der Zielstellung auf, die Computertechnik auch außerhalb reiner Rechenaufgaben einzusetzen ( Tabelle 1.1). Tabelle 1.1 Wichtige Etappen bei der Entwicklung der Computertechnik Zeitraum Entwicklung 30er-Jahre Anfänge digitaler Techniken und maschinellen Rechnens 1941 erster arbeitsfähiger programmgesteuerter Rechenautomat von Konrad Zuse (Z3), elektromechanisch mit Relais realisiert 1944 programmgesteuerter elektromechanischer Rechenautomat Mark1 von Howard H. Aiken um 1945 Formulierung der Von-Neumann-Prinzipien durch John von Neumann 1944 Realisierung des ersten Computers auf elektronischer Basis mit Elektronenröhren (ENIAC) 1948 Erfindung des Transistors 1955 erster Computer mit Transistoren (TRADIC) 1958 erster integrierter Schaltkreis von Jack S. Kilby 60er-Jahre Entwicklung leistungsfähiger Großrechner, Beginn der Dezentralisierung von Rechentechnik, integrierte Schaltkreise mit zunehmendem Integrationsgrad 1971 erster Mikroprozessor von INTEL, der i4004 mit 2300 Transistoren in p-kanal-mos-technologie ab 1974 rasche Entwicklung immer leistungsfähigerer Mikroprozessoren 80er-Jahre breiter Einsatz von Mikroprozessoren für dezentrale personengebundene Computer, industrielle Steuerungen und Konsumgüterelektronik, CMOS wird Haupttechnologie 90er-Jahre Mikroprozessoren erschließen neue Einsatzgebiete im Bereich von Hochleistungsrechnern, Workstations, Embedded-Control und digitaler Signalverarbeitung ab 1999 erste konfigurierbare Mikroprozessor-Hardware
22 1 Einführung Waren bisher Rechenmaschinen die Hauptanwendungsrichtung der Chipentwürfe gewesen, so wurde im Oktober 1969 das Konzept einer universell einsetzbaren Rechnerarchitektur entworfen, die aus einer 4-Bit-CPU, einem ROM (2048 bit), einem RAM (320 bit) und einem Peripheriechip (10- Bit-Ein-/Ausgabeschieberegister) bestand. Im Februar 1971 war die 4000er- Familie produktionsreif und der erste Mikroprozessor, der Intel 4004 (i4004), verfügbar /1.3/. Hinweis: Weitere Details zur Vorgeschichte der Computertechnik sind in /1.5/ dargestellt. In unmittelbarer Folge nach der Markteinführung des i4004 entstanden Mikroprozessoren mit unterschiedlichen Architekturen und verschiedener Leistungsfähigkeit ( Tabelle 1.2). Die Programmierbarkeit dieser MP, ihr geringes Volumen, der niedrige Energiebedarf und die relativ hohe Rechenleistung führten zu neuen Anwendungen und zum Masseneinsatz insbesondere im Bereich des Embedded-Control. Anmerkung: Auch wenn die Leistungsfähigkeit der ersten Mikroprozessoren gering war, so ermöglichten diese erstmals den breiten Einsatz elektronischer Steuerungen für eine Vielzahl technischer Anwendungen. Die geringe Leistungsfähigkeit wurde zum Teil durch eine Dezentralisierung der Steuerungsaufgaben kompensiert. Tabelle 1.2 Beispiele für die Markteinführung von Mikroprozessoren bis 1985 Verarbeitungsbreite MP-Typ Hersteller Fertigung ab etwa Anmerkungen 4 bit 4004 Intel 1971 erster MP TMS1000 Texas Instruments 1974 erster MC 8 bit 6800 Motorola 1974 MP 8748 Intel 1976 MC mit EPROM Z80 Zilog 1977 MP 6805 Motorola 1978 MC 8051 Intel 1981 MC 68HC11 Motorola 1984 MC 16 bit TMS9000 Texas Instruments 1976 MP 8086 Intel 1978 MP Z8000 Zilog 1979 MP 68000 Motorola 1979 MP 2920 Intel 1979 erster DSP 32 bit IMS T400 INMOS 1983 erster Transputer 68020 Motorola 1984 MP 80386 Intel 1985 MP
1.2 Historische Entwicklung 23 Anmerkung: Im Hinblick auf die Verarbeitungsleistung, On-Chip-Funktionalität und weitere Zieleigenschaften erfolgte eine ständige Weiterentwicklung in den einzelnen Klassen der Verarbeitungsbreite. Ab etwa 1987 wurden 64- Bit-Mikroprozessoren realisiert. Beispiele für die Entwicklung dieser 64-Bit- Hochleistungsprozessoren sind der 29000 (AMD), der Alpha AXP (DEC), der i960 (Intel), der R10000 (MIPS/Silicon Graphics), der IA-64-EPIC (INTEL/HP), der Power4-Chip (IBM) und der Alpha 21364 (HP/Compaq). 1 Während für MP in Hochleistungs-PCs und Workstations die Erzielung einer maximalen Verarbeitungsleistung im Mittelpunkt steht, so ist für den Bereich des Embedded-Control eine maximale Funktionalität des zum Einsatz kommenden Chips von größerer Bedeutung. Aus dieser anwendungsorientierten Betrachtungsweise heraus ergab sich bereits kurze Zeit nach dem Entstehen des ersten MP eine Spezialisierung in MC und DSP. Eine Aufsplittung in RISC- und CISC-Architekturen ( 3) setzte etwa 1980 ein. Diese scharfe Abgrenzung ist seit etwa 1995 nicht mehr gegeben, da CISC-MP auch RISC-Features nutzen ( Bild 1.4). Einführung der Superskalartechnik MP 1995 RISC MC CISC MC 1990 DSP RISC CISC MC 1980 1979 1974 1971 MP Bild 1.4 Stammbaum der MP-Entwicklung (nach /1.7/) Fortschritte bei der Steigerung der Verarbeitungsgeschwindigkeit wurden insbesondere möglich durch eine schnellere Taktung der Mikroprozessoren, ei-
24 1 Einführung ne Erhöhung der Datenverarbeitungsbreite und den Einsatz optimierter Architekturen. So führte z. B. die Nutzung der parallelen Befehlsausführung (Superskalartechnik) etwa um 1990 zu einem Schub in der Verarbeitungsgeschwindigkeit. Mit Verfahren zur Sprungvorhersage und dem Einsatz von Cache-Speichern konnte eine weitere Steigerung der Verarbeitungsleistung erreicht werden. Weiterführende Ansätze werden diskutiert und zum Teil bereits umgesetzt ( 3). Die Integration eines vollständigen Rechnersystems auf einem Chip als Mikrocontroller basiert nicht primär auf der Zielsetzung einer hohen Verarbeitungsleistung, sondern auf der Erzielung einer maximalen funktionellen Integration bei geringen Systemkosten. Für bestimmte Anwendungen sind neben der erforderlichen On-Chip-Funktionalität auch hohe Verarbeitungsleistungen notwendig, sodass bei einigen Mikrocontrollerfamilien Architekturprinzipien von Hochleistungsmikroprozessoren Anwendung finden ( 7). 1.3 Komponenten eines Mikrorechners /1.12/, /1.13/, /1.14/, /1.15/, /1.16/ Den grundsätzlichen Aufbau eines Mikrorechners und seine wichtigsten Komponenten, Verarbeitungseinheit, Speicher und Ein-/Ausgabe-Einheiten, zeigt Bild 1.5. CPU Interface Massenspeicher Speicher Programm Bediener- I/O Daten Steuerinformationen IOP Systembubus I/O-Sub- Bild 1.5 Prinzipieller Aufbau eines Rechnersystems Input Output Prozess- I/O
1.3 Komponenten eines Mikrorechners 25 CPU. Die zentrale Verarbeitungseinheit, kurz als CPU (Central Processing Unit) oder Prozessor bezeichnet, übernimmt sowohl die eigentliche Datenverarbeitung als auch die Koordination aller rechnerinternen Aktivitäten ( 1.3.1). 1 Speicher. Er nimmt die zu verarbeitenden Daten, das Programm und weitere Informationen über den Programmablauf auf und stellt diese auf Anforderung zur Verfügung. Oft sind die verschiedenen Informationen in einem gemeinsam genutzten Speicher untergebracht ( 1.3.2). Eingabe- und Ausgabe-Einheiten (auch E/A-Geräte oder I/O-Devices) dienen als Schnittstelle zur Außenwelt. Anzahl und konkrete Konfiguration hängen stark vom Verwendungszweck des Rechners und den angeschlossenen peripheren Geräten ab ( 1.3.4, 6). Beispiel: Ein PC oder eine Workstation benötigen z. B. für eine Kommunikation mit einem Bediener Tastatur, Bildschirm und Maus sowie einen externen Massenspeicher zur Auslagerung von Datenbeständen bzw. zur Bereitstellung von Programmen. Bei einem Steuerrechner für eine Anlage oder ein Gerät, kommen Sensoren zur Erfassung von Prozesszuständen und Aktoren zu deren Beeinflussung hinzu. I/O-Prozessoren (IOP) sind programmgesteuerte Logikeinheiten, die eigenständige Datenein- und -ausgaben durchführen, um die CPU zu entlasten. Sie erhalten von der CPU einen entsprechenden Auftrag und melden dieser den Abschluss des Datentransfers zurück. System-Bus. Er realisiert die Datenübertragung zwischen den einzelnen Baugruppen mittels gemeinsam genutzter Datenpfade, an die alle Komponenten gleichzeitig angeschlossen werden. Die Koordinierung von Übertragungsrichtung und zeitlichem Ablauf sowie die Auswahl von Sender und Empfänger erfolgt über besondere Steuersignale ( 1.3.3, 5) Master-Slave-Prinzip. Der gesamte rechnerinterne Ablauf unterliegt einem festen Regime. Die CPU steuert als Master aktiv alle Abläufe und Datentransporte. Speicher und periphere Komponenten arbeiten als Slave, d. h. sie sind stets passiv und werden nur auf Aufforderung der CPU hin aktiv. Das Interrupt-Konzept ist eine Erweiterung des Master-Slave-Prinzips, bei der periphere Slave-Einheiten eine Bedienforderung (Interrupt- Request) bei der CPU anmelden können. Allein die CPU entscheidet über die Berücksichtigung dieser Anforderung und den Zeitpunkt der Bearbeitung.
26 1 Einführung 1.3.1 Central Processing Unit CPU Eine CPU besteht im Wesentlichen aus einer Recheneinheit, die die eigentliche Datenverarbeitung vornimmt, sowie einem Steuerwerk, welches sowohl die Arbeit der Recheneinheit als auch die Aktivitäten der übrigen Rechnerbestandteile kontrolliert ( Bild 1.6). Zur Recheneinheit gehören die ALU (Arithmetic-Logical Unit) und der Registersatz. Adressbus Datenbus Programm- und Datenadressen Befehle Daten PC Registersatz Befehlsdecoder Ablaufsteuerung Steuersignale ALU Rückmeldungen Steuerwerk Recheneinheit Bild 1.6 Prinzipieller Aufbau einer CPU 1.3.1.1 Register Unter Registern versteht man CPU-interne Speicherstellen, die im Gegensatz zum externen Speicher besonders schnell ansprechbar sind. Universalregister (General Purpose Register) Sie dienen der direkten Datenablage. Sie stellen Operanden für arithmetische und logische Operationen bereit und nehmen die Ergebnisse der Verarbeitung auf. Teilweise werden Universalregister auch für komplexe Adressberechnungen benutzt. Hinweis: Jede CPU besitzt mindestens ein Universalregister. Dieses wird als Akkumulator, kurz Akku, bezeichnet. Existieren mehrere Universalregister, so können oft mehrere die Funktion des Akkumulators übernehmen. Anmerkung: Die Anzahl binärer Stellen (Bits) in jedem Universalregister entspricht in der Regel der Verarbeitungsbreite der ALU und ist ein Maß dafür, welche Informationsmenge der Prozessor mit einem Befehl verarbeiten kann. Sie beträgt typisch 4, 8, 16 oder 32 bit. Breitere Register bedeuten in der Regel eine größere Leistungsfähigkeit und erlauben einen größeren Bereich darzustellender Informationen in einem Register.