Mikrocomputertechnik


Prof. Jürgen Plate

Prolog

In dieser Vorlesung erfahren Sie, wie Computer funktionieren und dass es sich bei einem Computer lediglich um ein synchrones Schaltwerk oder einen Verbund mehrerer synchroner Schaltwerke handelt. Die Programmierung erfolgt dabei in einer maschinennahen Sprache, bei der die elementaren Befehle des Computers lediglich durch mnemotechnische Bezeichnungen etwas verständlicher sind, als der reine Binärcode. Das Programm zum Übersetzen der sogenannten Mnemonics in den Binärcode wird "Assembler" genannt, weshalb die Programmiersprache in der Regel auch "Assemblersprache" heisst.

Dass die Vorstellungen über Mikrocpmputer, PCs und sogenannte Heimcomputer früher nicht immer ganz klar waren, beweist das folgende Bild, dass ich samt Bildunterschrift im Internet fand. Es sollte angeblich aus der Zeitschrift "Popular Electronics" stammen:

Sehr viel später entpuppte sich das Bild als Hoax, eine Photomontage. Es handelt sich um das Photo eines U-Boot-Kontrollstands (Stromversorgung, Dampf etc.) aus einer Ausstellung des Smithsonian's National Museum of American History, das leicht modifiziert und in ein Graustufenbild umgewandelt wurde:

Siehe auch: http://www.museumofhoaxes.com/hoax/photo_database/image/home_computer_of_the_future/

Auch heute sollten Sie nicht immer alles glauben, was Ihnen über die Leistung und Möglichkeiten von Computern erzählt wird.

1 Einführung

Mikro-Computer sind sehr kompakte Computersysteme auf der Basis integrierter Steuer- und Verarbeitungsbausteine (Mikroprozessoren, Mikrocontroller) und Speicher (VLSI und ULSI-Bausteine) für allgemeine und spezielle DV-Anwendungen (z. B. Steuerung, Regelung): Der folgende Überblick zeigt die Entwicklung des Computers seit Mitte des 20. Jahrhunderts. Mit Fortschreiten der Integration wurden die Rechner auch immer billiger und kleiner.

ZeitraumSchaltungstechnikVerbreitungProgrammierungGeschwindigkeit
1945-1955Relais, Röhrenwenige ExemplareSteckbrett, Maschinencode103Op./s
1955-1965Transistoren, DiodenHunderteAssembler, FORTRAN104Op./s
1965-1980Integrierte SchaltungenTausendehöhere Programmierspachen106Op./s
ab 1980Hoch integrierte Schaltungen (VLSI)Millionenhöhere Programmiersprachen> 107Op./s

Handelte es sich bei den ersten Systemen noch um nur in wenigen Stückzahlen gefertige Geräte mit hohen Anschaffungs- und Betriebskosten sowie riesigem Platzbedarf und geringer Zuverlässigkeit, so beanspruchen die die ab 1955 entwickelten Maschinen ihre Rolle als erste kommerziell erfolgreiche Systeme.

Die Fortschritte der Fertigungstechnik erlauben eine immer weiter voranschreitende Packungsdichte der integrierten Schaltungen und verbilligen gleichzeitig deren Herstellung. Mit dem Personal Computer (PC) und den Heimcomputern (denen nur eine kurze Lebendauer beschieden war) begann der Einzug der Mikrocomputer und Mikrocontroller in alle Lebensbereiche. Heute enthält beispielsweise ein Mittelklassse-PKW eine zweistellige Anzahl vom Mikrocontrollern.

Parallel zur Entwicklung der CPU entwickelte sich die Landschaft der zugehörigen Peripherie. Die erste Rechnergeneration verfügte noch über keine dedizierten Peripheriegeräte. Eingaben wurden direkt, durch Schalttafeln und Erstellung von Hardwareverbindungen, an der Maschine vorgenommen. Ausgaben erfolgten über Lampen oder andere Signalgeber. Ab den 1955er Jahren finden sich zunehmen externe Geräte zur Abwicklung und dauerhaften Speicherung der verarbeiteten Daten und Programme. Es begann mit Lochstreifen, die später durch Lochkarten abgelöst wurden. Als Ein- und Ausgabegerät kamen modifizierte Fernschreiber oder entsprechend angepasste elektrische Schreibmaschinen hinzu. Später wurden sie von Textbildschirmen abgelöst. Bei Embedded Systemen (Computersysteme, die in Geräten zur Steuerung dienen) gibt es meist keine Peripherie im klassischen Sinn, sondern dort fungieren Sensoren und Aktoren (Relais, Motoren etc.) als Ein- und Ausgabe.

Wesentliches Element einer Rechnerarchitektur ist der Prozessor (engl. central processing unit, CPU), der die Hauptteile der Verarbeitung übernimmt. Der stetiger Leistungszuwachs der CPU richtete sich in der Vergangenheit nach dem Moore'schen Gesetz, das auf Basis empirischer Daten eine Verdopplung der Transistorenanzahl pro Chip (und damit der Leistungsfähigkeit) alle anderthalb Jahre voraussagt.

Aktuelle Prozessoren folgen dem folgenden schematischen Aufbau, der die zentralen Architekturkomponenten Leitwerk, Rechenwerk (arithmetic and logic unit, ALU), Registersatz und typischerweise den Mikroprogrammspeicher umfaßt.

Diese, nach dem Erfinder als "von-Neumann-Architektur" bezeichnete, Architektur prägt den Aufbau von Rechenanlagen seit den 1950er Jahren und gilt im Kern bis heute (siehe unten). Einige Engpässe der von-Neumann-Architektur beruhen auf der Gleichbehandlung von Daten und darauf arbeitenden Programmen und der sequenziellen Verarbeitung.

Moderne CPU-Architekturen (z. B. Intel Pentium, AMD Athlon und Power PC) verfügen innerhalb einer CPU über mehrere Rechenwerke, insbesondere solche für Fest- und Gleitkommaoperationen.

Das Leitwerk steuert den gesamten Verarbeitungsfluss. Zur Regelung der Verarbeitung speichert das Leitwerk prozessorinterne Zustände (Status von Berechnungen und Fehlerindikatoren) in CPU-internen Speichern, den sog. Registern.

Der Registersatz wird durch eine Reihe von Speicherzellen, die direkt in der CPU untergebracht sind realisiert. Diese Speicherform stellt die schnellste und gleichzeitig teuerste Form des Speichers dar. Register besitzen typischerweise eine feste Länge, die mit der verarbeitbaren Wortlänge der CPU korrespondiert. Häufig werden die zur Verfügung stehenden Register bezüglich ihrer Funktionsweise, d.h. ihres Einsatzgebietes unterschieden, da oftmals nicht jedes Register für jeden Maschinenbefehl zur Verfügung steht. Minimalanforderung an einen Registersatz ist die Bereitstellung eines Befehlszählers (Befehlszeigerregister, engl. Instruction Pointer Register), der die Adresse des nächsten abzuarbeitenden Befehls enthält.
Darüber hinaus sind Register zur Aufnahme des Rechenergebnisses (Akkumulator) und zur Aufnahme von Adressen (Stackpointer, Indexregister) sowie ein Status- und Kontrollregister üblich.

1.1 Von-Neumann-Architektur

Im Jahre 1944 legte John von Neumann, ein ehemaliges Mitglied des ENIAC-Projektes, ein Architektur-Konzept für einen speicherprogrammierten Universalrechner vor. Sein erster Entwurf ist heute als "von-Neumann-Maschine" oder "von-Neumann-Architektur" bekannt - ein weitsichtiges und visionäres Konzept, das auch noch aktuellen Computern zugrunde liegt. Eine Von-Neumann-Maschine weist folgende wichtige Merkmale auf:

Leitwerk und Rechenwerk bilden die zentrale Verarbeitungseinheit (CPU, Prozessor).

Die Struktur des Rechners ist unabhängig von dem zu bearbeitenden Problem (→ Universalrechner). Die verschiedenen Aufgaben werden durch entsprechende Programme gelöst. Programme und von diesen benötigte Daten werden in einem gemeinsamen Speicher abgelegt. Die Speicherplätze sind gleichlang und werden über Adressen einzeln angesprochen.

Die bedeutendste Neuerung war von Neumanns Idee, Programm und Daten zuerst in den Speicher zu laden und dann auszuführen. Bis dahin war das Programm noch hardwaremäßig verschaltet oder wurde über Lochstreifen schrittweise eingelesen und sofort (streng sequentiell) bearbeitet. Nun war es möglich:

Von Neumann erreichte mit seinem Konzept, dass der Rechner selbstständig logische Entscheidungen treffen kann. Damit ist der Übergang vom starren Programmablauf zur flexiblen Programmsteuerung vollzogen.

Vorteile der v. Neumann-Architektur:

(Dies ist der Hauptgrund für ihre Langlebigkeit)

Nachteile der v. Neumann-Architektur:

Da Daten und Befehle im Speicher gehalten werden, wird die Verbindung und Datenübertragung zwischen CPU und Speicher bzw. zur Ein-/Ausgabe über den Systembus zum sogenannten Von-Neumann-Flaschenhals. Jeglicher Datenverkehr von und zur CPU wird über den internen Bus abgewickelt, dessen Transfergeschwindigkeit langsamer ist, als die Verarbeitungsgeschwindigkeit der CPU. Dieses Problem versucht man in modernen Prozessoren durch die Verwendung von schnellem Cache-Speicher, der meist in der CPU integriert ist, abzuschwächen.

Operationsprinzip

Die CPU kann nur elementare, (fest verdrahtete) Befehle verarbeiten ( Maschinenbefehle). Jedes Programm besteht also aus einer Folge elementarer Befehle. Da im Speicher nicht zwischen Daten und Befehlen unterschieden wird, muss das Leitwerk entscheiden, ob der Inhalt einer Speicherzelle als Befehl oder Datum aufzufassen ist. Es gibt somit zwei Zustände des Rechners: Befehl holen (Interpretieren als Befehl) und Befehl ausführen (Interpretation als Datum). Entsprechend gibt es zwei Phasen der Programmabarbeitung:

Dieses Zweiphasenschema erfordert eine streng sequentielle Ausführung eines Programms, d.h. es sind zwar Sprünge möglich, jedoch keine parallele Bearbeitung mehrerer Befehle. Ein v. Neumann-Rechner bearbeitet zu jedem Zeitpunkt immer nur einen Befehl, der immer eine Datenoperation im Rechenwerk bewirkt.

Komponenten der von-Neumann-Rechnerarchitektur

Die CPU besteht aus Recheneinheit (ALU) und Steuereinheit. Die ALU hat eine feste Wortbreite, z. B. 8, 16, 32 oder 64 Bit, ihre Aufgabe besteht in der Bearbeitung der Daten, besonders dem Ausführen von arithmetischen und logischen Operationen.

Zur wichtigsten Aufgabe der Steuereinheit gehört die Koordination der zeitlichen Abläufe im Rechner. Dazu muss die Steuereinheit die Befehle aus dem Speicher holen, entschlüsseln und deren Ausführung steuern. Die Steuereinheit besteht aus Befehlsregister, Befehlsdecoder, Speicheradressregister und Befehlszähler (Program Counter).

Der Speicher eines von-Neumann-Rechners besteht aus einer Vielzahl von Speicherworten, die wahlfrei adressiert werden können.

Innerhalb eines von-Neumann-Rechners erfolgt der Datentransport auf internen Datenwegen, den Bussen:

1.2 Befehlszyklus

Das folgende Bild zeigt den prinzipiellen Ablauf bei Bearbeiten eines Befehls.

Der Befehlszyklus wird also von der CPU ständig durchlaufen:

Ablauf des Befehlszyklus

In der Befehlsholphase erfolgt ein Speicherzugriff (1a) auf die vom Befehlszähler (BZ) angezeigte Adresse. Der entsprechende Befehl wird in das Befehlsregister (IR) des Leitwerks gebracht (1b). Anschließend wird der BZ um 1 erhöht. Er zeigt damit auf den nächsten Programmbefehl. Besteht ein Befehl aus mehreren Speicherworten, setzt sich diese Phase auch aus mehreren Speicherzugriffen zusammen (BZ wird jedes Mal erhöht), bis der Befehl vollständig im IR steht. Es erfolgt hier in der Befehlsholphase bereits eine Teilauswertung des Operations-Codes (s. Grafik). Das Befehlsregister besteht hier aus Op-Code-Register (OR, Befehlsregister) und Adress-Register (AR).

Der Befehl im OR wird nun decodiert (Befehlsdecoder) und der Ablaufsteuerung zugeführt. Diese ist in der Regel als Mikroprogramm realisiert. Die Ablaufsteuerung erzeugt nun die nötigen Steuersignale.

Benötigt der Befehl Operanden, so wird deren Adresse aus dem Inhalt des AR ermittelt. Häufig ist im Befehl nicht die tatsächliche Operandenadresse, sondern nur eine Teilinformation enthalten, die noch geeignet ergänzt werden muss ( Adressrechnung.

Nun erfolgt ein Speicherzugriff (4a) auf die so festgestellten Operanden-Adresse. Der Operand wird in das vom Op-Code spezifizierte Register oder in das Rechenwerk (4b) oder in die ausgewählte Speicherzelle gebracht.

Falls durch den Op-Code weitere Teiloperationen gefordert sind, werden diese nun ausgeführt. Dabei kann auch der Inhalt des BZ verändert werden (Sprungbefehle, Unterprogramm-Aufrufe).

Jeder Befehlszyklus besteht aus einer Anzahl von Teilschritten. Die Anzahl der Teilschritte kann für unterschiedliche Befehle verschieden sein, auch die Zeitdauer der einzelnen Befehle kann unterschiedlich sein.

Die Befehlszyklen verschiedener Befehle können unterschiedlich lang sein. Die tatsächliche Dauer eines Befehlszyklus hängt von der Taktfrequenz der CPU ab. Der gesamte Ablauf in der CPU wird durch einen zentralen Takt gesteuert. Ein Befehlszyklus kann in eine Reihe von Maschinenzyklen zerlegt werden (z.B. Speicherzugriff in einem Maschinenzyklus). Ein Maschinenzyklus kann eine oder mehrere Taktperioden (Arbeitstakt des Prozessors) dauern.

1.2 Erhöhung der Leistungsfähigkeit

Vermeiden oder Mildern des v. Neumann-Flaschenhalses

Asynchrone Trennung von Befehlshol- und -ausführungsphase

1.4 Die Harvard-Architektur

Die Harvard-Architektur ist im Kern älter als die von-Neumann-Architektur, denn die ersten Computer (etwa die Zuse 3) hatten eigentlich nur einen Datenspeicher. Der "Programmspeicher" manifestierte sich als Lochstreifen oder -karten. Erst später wurde das Programm auf Speichermedien, z. B. einem Trommelspeicher abgelegt. Typisch war also die Trennung von Daten- und Programmspeicher.

Die Harvard-Architektur bezeichnet heute ein Schaltungskonzept zur Realisierung besonders schneller CPUs und Signalprozessoren. Befehlsspeicher und Datenspeicher sind voneinander getrennt und werden über getrennte Busse angesteuert. Daher können Befehle und Daten gleichzeitig geladen, bzw. geschrieben werden. Bei einer klassischen Von-Neumann-Architektur sind hierzu mindestens zwei aufeinander folgende Buszyklen notwendig. Zudem sorgt die Trennung von Daten und Programm dafür, dass bei Softwarefehlern kein Programmcode überschrieben werden kann. Nachteilig ist allerdings, dass nicht benötigter Datenspeicher nicht als Programmspeicher genutzt werden kann.

Die Harvard-Architektur wurde zunächst überwiegend in RISC-Prozessoren konsequent umgesetzt. "RISC" steht für "Reduced Instruction Set Computer" (Computer mit eingeschränktem Befehlssatz - siehe unten). RISC-Prozessoren haben einen kleinen Befehlssatz, bei dem aber fast alle Befehle innerhalb eines einzigen Taktzyklus ausgeführt werden können.

Moderne Prozessoren in Harvard-Architektur sind in der Lage, parallel mehrere Rechenwerke gleichzeitig mit Daten zu füllen und auf diesen Daten Befehle auszuführen. Ein weiterer Vorteil der Trennung besteht darin, dass Datenwortbreite und Befehlswortbreite unabhängig voneinander sind. Damit kann, falls erforderlich, die Effizienz des Programmspeicherbedarfs verbessert werden, da sie nicht direkt von den Datenbusbreiten abhängig ist, sondern ausschließlich vom Befehlssatz. Besonders bekannte Vertreter dieser Architektur sind die Produkte der Firma Microchip Technology Inc. (PIC) und die Mikrocontroller der AVR-Reihe von Atmel.

Eine bedeutende Erweiterung der Harvard-Architektur wurde von Analog Devices durch die Einführung der SHARC-(Super-Harvard-Architecture)-Technologie vorgenommen, bei der die Speichersegmente als Dual-Port-RAMs realisiert wurden, die kreuzweise zwischen den Programm- und Daten-Bussen liegen.

Viele moderne Prozessoren verwenden eine Mischform aus Harvard- und von-Neumann-Architektur, bei der innerhalb des Prozessors Daten und Programm voneinander getrennt verwaltet werden. Es existieren eigene Cache-Speicher und Memory Management Units mit getrennten internen Bussen. Extern wird jedoch in einem gemeinsamen Speicher zugegriffen. Beim Pipelining besteht der Vorteil dieser Mischform darin, dass deren einzelne Pipelinestufen in Bezug auf Speicherzugriffe getrennt arbeiten können.

RISC "Reduced Instruction Set Computer"

(Computer mit eingeschränktem Befehlssatz)

Hat man anfangs versucht, beim Design neuer Prozessor-Chips immer mehr und immer leistungsfähigere Befehle zu integrieren (Complex Instruction Set Computer, CISC), so wird beim RISC-Prozessor der umgekehrte Weg beschritten.

Für jeden Befehl des Prozessors gibt es eine fest verdrahtete Folge von Ablaufschritten im Chip, das Mikroprogramm. Je komplexer und mächtiger ein Befehl ist, desto mehr Einzelschritte muss das Mikroprogramm auf den Chip durchlaufen und desto mehr Taktzyklen sind notwendig, bis der Prozessor den nächsten Befehl verarbeiten kann. So liegt z.B. beim Prozessor 8088 die Zahl der Taktzyklen für einen Befehl zwischen 2 und 190.

RISC-Prozessoren haben einen kleinen Befehlssatz, bei dem aber fast alle Befehle innerhalb eines einzigen Taktzyklus ausgeführt werden können. Das bedeutet auch eine Vereinfachung des Chips und erreicht auf diese Weise höhere Taktfrequenzen. Typische RISC-Mikrocontroller sind die PIC-Modelle von Microchip und etliche Atmel-Prozessoren.

1.5 Begriffe

Mikrocomputer:

Mikroprozessor:

Mikrocontroller:

1.6 Entwicklung

Mikroprozessor und Mikrocomputer sind Ergebnis der Entwicklungen im Bereich der Halbleitertechnik Mikroelekronik, ständige Erhöhung der Integrationsdichte.

Die zunehmende Integrationsdichte führte zu immer stärkerer Spezialisierung der Funktion und zur Einschränkung der Einsatzmöglichkeiten kundenspezifische LSI-Schaltkreise. Auswege:

Der erste Mikroprozessor wurde 1970/71 von Intel als Steuerbaustein für ein Bildschirmterminal entwickelt. Da er für den vorgesehenen Zweck zu langsam war, wurde er als universeller Steuerbaustein vermarktet (4004, 8008). Durch Zufall kam dieses Produkt zur richtigen Zeit als Alternative zu kundenspezifischen Bausteinen auf den Markt. Folge: sensationell zunehmende Entwicklung des Mikrocomputer-Einsatzes. Die Entwicklung erfolgte in zwei Richtungen:


Die ersten Mikroprozessoren von Intel, 4004 und 8008

Mikrocomputer als Ersatz festverdrahteter Logik

Einsatz für komplexe Steuerungsaufgaben in sich ständig ausweitenden Anwendungsgebieten. Die weitaus größere Zahl von Mikroprozessoren wird hier eingesetzt. Das Programm für eine bestimmte Aufgabe wird im ROM abgelegt. Ein kleiner RAM-Bereich speichert die Variablen, z. B.:

Einsatzbeispiele:


Eines der ersten Entwicklungssysteme: KIM1 mit Prozessor 6502, 1 kByte Speicher, Hex-Tastatur und Siebensegmentanzeige

Mikrocomputer als Universalrechner

Ursprünglich als Entwicklungssysteme für den o.g. Anwendungsbereich konzipiert erfolgte eine Weiterentwicklung zu Arbeitsplatzrechnern (PC, Homecomputer).

Kennzeichen:

Technische Entwicklung:

Anzahl Transistoren eines Intel 8080 Mikroprozessors 4 500
Anzahl Transistoren eines Intel 80286 Mikroprozessors 134 000
Anzahl Transistoren eines Intel 80386 Mikroprozessors 275 000
Anzahl Transistoren eines Intel Pentium Mikroprozessors 3 100 000
Anzahl Transistoren eines Intel Pentium 4 Mikroprozessors 42 000 000
Anzahl Transistoren eines AMD KG (Athlon 64) Mikroprozessors 105 900 000
Anzahl Transistoren eines Intel Core i7 Mikroprozessors 731 000 000
Anzahl Transistoren eines Eight Core Xeon Nehalem-EX Mikroprozessors   2 300 000 000
Anzahl Transistoren eines RV820 ATI/AMD Grafikprozessors 2 154 000 000
Anzahl Transistoren eines GF100 NVIDIA Grafikprozessors 3 000 000 000
 
Festplattenkosten pro Gigabyte 1990 53 000
Festplattenkosten pro Gigabyte 1995 850
Festplattenkosten pro Gigabyte 2000 20
Festplattenkosten pro Gigabyte 2005 1
Festplattenkosten pro Gigabyte 2010 0.1
RAM-Kosten pro Gigabyte 1990 120 000
RAM-Kosten pro Gigabyte 1995 33 000
RAM-Kosten pro Gigabyte 2000 1 400
RAM-Kosten pro Gigabyte 2005 190
RAM-Kosten pro Gigabyte 2010 20
(Alle Preisangaben in US-Dollar)

1.7 Embedded Systems

"Embedded Systems" ist der englische Fachbegriff für eingebettete (Computer-)Systeme, die in der Regel unsichtbar ihren Dienst in einer Vielzahl von Anwendungsbereichen und Geräten versehen, wie z.B. in Flugzeugen, Autos, Kühlschränken, Fernsehern, Werkzeugmaschinen, Kaffeeautomaten, DVD-Playern oder anderen Geräten. In der Computerbranche werden solche Systeme auch gerne "Appliance" genannt. ("appliance: A device or instrument designed to perform a specific function, especially an electrical device, such as a toaster.)

Wenn man den Begriff aufschlüsselt ergibt sich:

Ein eingebettetes System verrichtet, weitgehend unsichtbar für den Benutzer, den Dienst in einer Vielzahl von Anwendungsbereichen und Geräten, wie z. B. in Flugzeugen oder Autos, Haushaltsgeräten, in der Unterhaltungselektronik, bei Mobiltelefonen oder in industriellen Steuerungen. Ein eingebettetes System interagiert mit seiner meist elektromechanischen Umwelt. Dabei ist kein menschlicher Benutzer vonnöten; er muss auch keinerlei Kenntnisse über die technischen Innereien des eingebetteten Systems haben, um das Gesamtsystem bedienen zu können. Im Fall von komplexen Gesamtsystemen handelt es sich dabei meist um eine Vernetzung einer Vielzahl von autonomen, eingebetteten Systemen.

Eingebettete Systeme können in Einzelfällen auf ähnlicher Hardware wie Arbeitsplatzcomputer basieren (sogenannte embedded-PCs), in der Regel unterliegen sie jedoch stark einschränkenden Randbedingungen: Minimale Kosten, geringer Platz-, Energie-, Speicherverbrauch. Einzelne Komponenten wie Prozessor oder Arbeitsspeicher müssen auch wesentlich länger auf dem Markt verfügbar sein, um die langfristige Einsetzbarkeit und Ersatzteilbeschaffung zu gewährleisten. „Moderne“ eingebettete Systeme basieren auf den verschiedensten Prozessor-Plattformen, die in Bezug auf die Peripheriemodule hochintegriert sind und durch moderne Stromspartechniken wenig Energie verbrauchen.

"Embedded Systems" vereinigen daher durch ihre oftmals sehr hardwarenahe Konstruktion die große Flexibilität von Software mit der Leistungsfähigkeit der Hardware. Die Software-Entwicklung für diese Systeme unterscheidet sich oft grundsätzlich von jener für Desktop- oder PC-Systeme: oftmals werden Betriebssysteme eingesetzt, die zwar nicht über eine grafische Benutzeroberfläche verfügen, dafür jedoch Echtzeitanforderungen genügen.

Bevorzugte Programmiersprachen sind daher z. B. Assembler oder C. Bekannte Embedded-Betriebssysteme sind z.B. QNX, VxWorks, Windows CE, DOS, LynxOS, Nucleus, zunehmend auch spezielle Linux-Derivate, wenn die Echtzeitbedingungen keine dominante Rolle spielen. Einige Beispiele für Embedded Systems sind:

Kennzeichnende Merkmale von embedded Systemen sind: Sekundäre Merkmale von embedded Systemen sind: Eingebettete Systeme beanspruchen einen Marktanteil bei der Prozessor-Produktion von ca. 98%. Die restlichen 2% dienen dem Aufbau von interaktiven Systemen wie z. B. Laptops, Desktop-Computern und Servern. Nahezu die Hälfte der gesamten Microcontroller-Jahresproduktion sind immer noch 8-Bit-Prozessoren. Bereits heute gibt es mehr eingebettete Systeme als Menschen auf der Welt. Deren Elektronik dient oft als Wegwerf-Artikel (z. B. RFID-Tags, Grusspostkarten).

Man setzt deshalb für die Definition des eingebetteten Systems voraus, dass

Tatsächlich haben sich im der Industrie immer häufiger Standard-PC-Komponenten bei Neuentwicklungen von eingebetteten Systemen durchgesetzt -- geringe bis mittlere Stückzahlen und kurze Produktzyklenzeiten vorausgesetzt. Die Komponenten von der Stange ("Commodity of the Shelf", COTS) kosten oft nur einen Bruchteil vergleichbarer proprietärer Industrielösungen und sind dabei wesentlich flexibler. Diese "Embedded PCs" sind aber nicht überall sinnvoll: Oft zwingen rauhe Umgebungen und Platzmangel zu speziellen Eigenentwicklungen. Bei hohen Stückzahlen ist dies ohnehin obligatorisch.

Anders als stationäre Systeme haben eingebettete Systeme besondere Anforderungen hinsichtlich Robustheit, Energieverbrauch und Speicherbedarf, Im Gegensatz zu einem Arbeitsplatzrechner wird ein eingebettetes System im Allgemeinen nicht "heruntergefahren", bevor man es ausschaltet. Es muss im Gegenteil damit zurechtkommen, dass ihm der Strom jederzeit und ohne Vorwarnung abgestellt werden kann. Damit ein solcher Shutdown, etwa aufgrund eines Stromausfalls, problemlos überstanden wird und die Software nach dem Booten in einen definierten Anfangszustand gelangt.

Bewegliche Teile wie Lüfter oder Festplatte sind meist nicht erwünscht. Besonders sind auch meist die Umgebungsbedingungen wie Temperatur und Feuchtigkeit. Um auch diesen Anforderungen gerecht zu werden, steht eine möglichst geringe Stromaufnahme des Prozessors bzw. des Boards im Vordergrund. Im Vergleich zum "Stomfresser" im Desktop-Rechner kommt ein embedded Board meist mit weniger als 1 Watt aus. Embedded Systems laufen buchstäblich während ihrer gesamten Lebensdauer, also an sieben Tagen pro Woche und 24 Stunden pro Tag. Gelegentliche Abstürze mit der Notwendigkeit eines Neustarts sind hier absolut inakzeptabel (insofern fällt mein kürzlich erworbener DVB-T-Empfänger/Decoder aus dem Rahmen, bei schlechtem Empfang hängt er sich schon mal auf).

Embedded Systems basieren also oft auf ähnlicher Hardware wie Arbeitsplatzcomputer, unterliegen jedoch meist stark einschränkenden Randbedingungen: minimale Kosten und damit geringer Platz-, Energie-, Speicherverbrauch. Die Fertigung in großen Stückzahlen, oft im Millionen-Bereich, ist ein weiterer wichtiger Punkt zur Kostenreduzierung. Hinzu kommt, dass die einzelnen Komponenten wie Prozessor und RAM auf Weiterentwicklungen älterer Komponenten basieren, was die Langlebigkeit steigert, Stromverbrauch und -kosten jedoch senkt.

Für viele Anwendungen können auch ältere Komponenten eingesetzt werden, wenn zudem die Vereinfachung der Architektur des ursprünglichen Systems dazu beiträgt, weitere Kosten zu senken. Programme eines Embedded Systems müssen oft Echtzeitanforderungen genügen. In der Regel existieren verglichen mit Desktop-PC-Hardware nur stark reduzierte Ressourcen, zumeist ohne Festplatte, Betriebssystem, Tastatur oder Bildschirm. Ein ROM- oder Flash-Speicher ersetzt meist mechanische Speicherkomponenten wie eine Festplatte: bewegliche Teile bedeuten Verschleiß, der hier unerwünscht ist. Wenn überhaupt, dann gibt es meist nur ein Tastenfeld und die Ausgabe wird -- soweit überhaupt vorgesehen -- durch ein LCD realisiert.

Design von Embedded Systems

Die Elektronik wird meist von einem Mikroprozessor mit entsprechender Peripherie oder einem Microcontroller gebildet. Vielfach handelt es sich auch um komplette PC-Boards mit stromsparenden Bauteilen und anderem Formfaktor. Ein solcher PC gilt bereits als groß, wenn er Postkartenformat besitzt. Um das Board herum ist dann die dem Aufgabengebiet entsprechende Peripherie angeordnet. Folgende Aspekte spielen u. a. bei Designentscheidungen von Embedded Systems eine Rolle:

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt


Copyright © FH München, FB 04, Prof. Jürgen Plate
Letzte Aktualisierung: 13. Feb 2013