Architekturen eingebetteter Linux-Systeme - eine
Einführung
Überall Linux
von René Rebe
Ob Accesspoints, Firewalls, Network Attached Storage, Navigationsgeräte oder Handys - auf unendlich vielen Geräten läuft Linux. Über das Warum, das Wie und über die Eigenschaften typischer Embedded-Architekturen klärt dieser Artikel auf.
Als Linus Torvalds 1991 als Hobby die Arbeit am Unix-artigen Betriebssystem Linux begann, legte er es nur für Intel-80386-Prozessoren aus. Es unterstützte nur AT-Festplatten und Linus selbst war der Meinung, dass es wohl nicht sehr portabel sei. Doch mit zunehmender Verbreitung folgten in den 90er Jahren erste Linux-Portierungen auf DECs Alpha, Suns Sparc und andere CPU-Familien.
Heute unterstützt Linux neben I-386 nicht nur viele andere CPUs wie ARM, AVR32 [1], Mips oder PowerPC, sondern auch Architekturen ohne Memory Management Unit (MMU), beispielsweise Motorola 68000 und Derivate sowie digitale Signalprozessoren wie die Blackfin-Familie [2] von Analog Devices. Linux hat sich zu einem portablen und skalierbaren Betriebssystem entwickelt, das auf fast jeder CPU zu Hause ist und auch durch die monolithische Architektur mit sehr guter Performance glänzt (siehe Kasten "Embedded-Linux-Hardware").
Monolithisch bedeutet, dass alle Kernelkomponenten, Subsysteme und Treiber in einem Adressraum residieren und sich direkt aufrufen. Im Unterschied dazu lagern Microkernel alle weniger zentralen Komponenten in eigene Adressräume aus, was zwar das Speichschutz-Niveau erhöht, aber den Datenaustausch erschwert und zusätzliche Kontext-Switches erzwingt.
Der monolithische Aufbau macht Linux-System jedoch nicht groß und unbeweglich: Der Quellcode [3] bietet Konfigurationsmöglichkeiten, um nicht benötigte Subsysteme und Funktionen zu deaktivieren und so das System genau an den jeweiligen Verwendungszweck anzupassen.

|
Abbildung 1: NGW 100, ein Beispiel für ein Linux-Board mit AVR32-Prozessor, 140 MHz Takt und 32 MByte RAM.
|

|
Abbildung 2: Als weiteres Beispiel das Linux-Board Blackfin Stamp mit einem 533-MHz-DSP, aber ohne MMU.
|
Extrem einfach portierbar
Der modulare Aufbau sowie der hohe Anteil an C-Code sorgen dafür, dass sich Linux einfach auf beliebige Prozessoren portieren lässt, solange sie über mindestens 32 Bit breite Register verfügen. Mit Portierungen für Renesas H8 und Intel 8086 (ELKS, Embeddable Linux Kernel Subset) existieren sogar spezielle Portierungen für 16-Bit-Systeme. Derlei Anpassungen sind allerdings mit größerem Aufwand verbunden und eher selten.
Der Befehlssatz jeder Prozessorfamilie ist anders. Grob unterscheidet man zwischen komplexen Instruktionen (Cisc) und einfacheren, reduzierten (Risc). Durch den einfacheren Aufbau sind Risc-CPUs in der Regel günstiger zu fertigen und erreichen einfacher höhere Taktfrequenzen. Die einzelnen CPU-Familien sind sehr unterschiedlich (siehe Tabelle 1). Einige, etwa Intel x86, adressieren neben dem Speicher ihre I/O-Ports separat.
|
|
|
Prozessorfamilie
|
Bits
|
MMU
|
Byte-Order
|
|
Alpha AXP
|
64
|
ja
|
Big-Endian
|
|
Sun Sparc
|
32/64
|
ja
|
Big-Endian
|
|
Motorola 68000
|
32
|
teilweise
|
Big-Endian
|
|
PowerPC
|
32/64
|
ja
|
Big-Endian
|
|
ARM
|
32
|
ja
|
Big-/Little-Endian
|
|
Hitachi Super H
|
32/64
|
ja
|
Little-Endian
|
|
Mips
|
32/64
|
teilweise
|
Big-/Little-Endian
|
|
Microblaze
|
32
|
teilweise
|
Big-Endian
|
|
HP PA-Risc
|
32/64
|
ja
|
Big-Endian
|
|
Intel IA-64
|
64
|
ja
|
Little-Endian
|
|
x86
|
32/64
|
ja
|
Little-Endian
|
|
Axis CRIS
|
32
|
ja
|
Big-Endian
|
|
Renesas M32R
|
32
|
teilweise
|
-
|
|
Atmel AVR32
|
32
|
ja
|
Big-Endian
|
|
Renesas H8/300
|
8/16
|
nein
|
-
|
|
NEC V850
|
32
|
nein
|
Little-Endian
|
|
Tensilica Xtensa
|
32
|
teilweise
|
Big-/Little-E.
|
|
Analog Devices Blackfin
|
32
|
nein
|
Little-Endian
|
Neben der Breite der Register, die sich in der Regel zwischen 8 und 64 Bit bewegt und entscheidet, wie viel Daten der Prozessor mit einem Befehl bewegen und wie viel Speicher er adressieren kann, gibt es das Unterscheidungsmerkmal der Byte-Reihenfolge (Byte-Order oder Endianness).
Legt eine CPU Daten, die länger als 8 Bits sind, mit den höchstwertigen Bytes zuerst ab, bezeichnet man sie als Big-Endian. Prozessoren, die niederwertige Bytes vor den höherwertigen speichern, heißen Little-Endian. Einige Prozessoren beherrschen sogar beide Adressierungsarten.
Auch ohne MMU
Die für Schutz und Paging zuständige Memory Management Unit fehlt den kleinsten Embedded-CPUs aus Komplexitäts- und Kostengründen. Kernel und Anwendungen laufen bei ihnen nicht voneinander getrennt, Programmierfehler führen dann schnell zum Systemabsturz. Bei Geräten mit fest definierter Funktion und ohne die Möglichkeit externer Software-Installation, zum Beispiel Digitalkameras oder Drucker, ist eine solche Systemkonfiguration aber durchaus die Regel. Einige Prozessoren bieten statt einer MMU eine Memory Protection Unit (MPU), die zwar kein Paging und somit keinen virtuellen Speicher kennt, aber die einzelnen Anwendungen und den Kernel voreinander schützt.
Wegen des Miniaturisierungs- und Kostendrucks sind die meisten Embedded-Chips keine reinen CPUs, sondern fungieren als System-on-Chip (SoC). Sie beherbergen nicht nur den Rechenkern, sondern zugleich den Speichercontroller und eine Fülle von Peripherie-Anschlüssen, etwa serielle USB- und Grafik-Schnittstellen, Ethernet und Audio. Zur praktischen Funktion benötigen die meisten SoC nur noch Speicherbausteine (ROM, RAM) und ein wenig passive Interface-Beschaltung. Eine andere Spielart stellen FPGAs mit CPU-Kernen (etwa mit PowerPCs) dar sowie synthetisierbare CPU-Cores wie Microblaze und M32R, die es erlauben, Linux mit Zusatzlogik in FPGAs zu verwenden.
Linux, speziell in eingebetteten Geräten, bietet viele Vorteile - allen voran natürlich die Freiheit des Quellcode. Durch die Verfügbarkeit der Quellen und damit auch aller Treiber ist es in der Entwicklung eines Produkts möglich, beliebige Veränderungen an der Hardware vorzunehmen und Fehler zeitnah zu lokalisieren. Linux bietet einen ausgereiften Netzwerkstack samt Firewall, IPv6 und Bridge-Funktionalität. Viele fertige Treiber und die CPU-Unterstützung erlauben es, die Hardware für ein Produkt frei nach den Funktionsvorgaben zu wählen. Eine intelligente Wahl der Hardwarekomponenten reduziert auch die Produktionskosten. Dank der Erweiterungen RTAI und RT Linux lassen sich zudem Echtzeitanforderungen abdecken. (Dazu erscheint in einem der nächsten Linux-Magazine ein Artikel.)
|
Das Angebot an SoC-Microprozessoren, die Linux unterstützt, ist sehr vielfältig. Hier ein grober Überblick: Die AVR32-Produktreihe von Atmel [1] ist vielleicht das bekannteste Beispiel für SoC (Abbildung 1). AVR32 zeichnet sich durch guten Durchsatz bei niedriger Stromaufnahme aus. Der AT32AP7002 beispielsweise schafft 210 Dhrystone-Mips bei einer Taktrate von 150 MHz. Ausstattungsmerkmale sind 16-Bit-Stereo-DAC, LCD/TFT-Interface, Image Sensor Interface, 10/100-MBit/s-Ethernet, USB, RS232, USART, I2C, SPI und PS2. Der Chip unterstützt zudem gängige Speicherkartenformate. Für portable Geräte bieten sich Prozessoren mit dem AVR-UC3-Kern an. Die ARM-Baureihe AT91CAP erlaubt es dem Entwickler, zusätzliche Logik im Chip zu realisieren, für die er sonst einen extra FPGA oder Asic vorsehen müsste.
Power-Serie verdient ihren Namen
AMCC zielt auf den Embedded-Markt mit der PowerPC-400-Produktlinie [4]. Je nach Modell legt der Hersteller den Schwerpunkt auf Bildverarbeitung, Wireless, industrielle Lösungen oder Speicher- und Netzwerkanwendungen. Eine Übersicht liefert der Product Selector Guide auf der Webseite. Die Prozessoren bieten unter anderem je nach Modell 10-MBit- bis 1-GBit/s-Ethernet, PCI-Express-Interfaces, SATA-Controller mit Raid-5- und Raid-6-Support. Optional enthalten die beiden Modelle 405EX und 460EX eine Crypto-Engine, die den Prozessorkern beim Verarbeiten derartiger Daten entlastet.
Auch Broadcom spezialisiert sich mit den auf Mips basierenden Prozessoren [5] der BCM-Baureihe auf den Netzwerkbereich. Die Baureihe umfasst je nach Modell bis zu vier Prozessorkerne. Typische Ausstattungsmerkmale sind Gigabit Ethernet, DDR2, PCI und Hyper Transport (HT).
Freescale [6] hat gleich drei verschiedene Prozessorarchitekturen im Sortiment: ARM, Coldfire und Power Architecture, wobei die letztere das breiteste Produktportfolio bietet. Erwähnenswert ist hier die QUICC-Engine-Technologie: Die chipinterne Kommunikationseinheit entlastet den Hauptkern von Netzwerk-Kommunikationsaufgaben [7].
Intel hat mit seiner Xscale-Architektur [8], die auf dem ARM-5TE-Befehlssatz basiert, ebenfalls Produkte für SoC im Programm. Ein aktuelles Topmodell ist der CE-2110-Mediaprozessor [9], konzipiert für Geräte der Unterhaltungsindustrie, etwa digitale Settop-Boxen und netzwerkfähige Mediaplayer. Er beinhaltet eine 1-GHz-CPU, Mpeg-2- und H.264-Hardware-Videodecoder, einen DSP für Audio- und Videocodecs, 3D-Grafikbeschleuniger, Hardwarebeschleuniger zur Ver- und Entschlüsselung von DVB-CSA, DES, 3DES, AES sowie verschiedene Video- und Audio-Ein- und Ausgänge. Schnittstellen für PCI, ATA, USB, GPIO, UART, I2C, SPI und Smartcards sind ebenfalls vorhanden.
Multimedia-Spezialisten
Die Multimedia-geeignete Blackfin-Serie von Analog Devices [2] enthält einen 16-/32-Bit-Prozessorkern mit DSP (Abbildung 2). Die mit 200 bis 750 MHz getakteten Blackfins besitzen ein Powermanagement, das nach Vorgabe der Software auf Stromaufnahme oder Performance optimiert. Viele Varianten arbeiten bei Umgebungstemperaturen zwischen -40 und +85 °C, was sie für raue industrielle Anwendungen interessant macht. Es gibt auch Low-Cost-Ausführungen, die zu den anderen Pin- und Software-kompatibel sind.
Die Blackfin-Familie wird gern für Kryptographie, IP- und Mobil-TV, Fahrerassistenzsysteme, Biometrie, VoIP bis hin zu GSM eingesetzt. Labview, ein auch unter Linux laufendes grafisches Programmiersystem von National Instruments, das in der Mess- und Automatisierungstechnik gängig ist, unterstützt diese Produktreihe mit dem "Labview Embedded Module for ADI Blackfin Processors" [10].
P.A. Semi bietet mit der PWRficient-Familie einen - nach Embedded-Maßstäben - Hochleistungsprozessor der lPowerPC-Architektur an [11]. Der 2-GHz-Chip hat je nach Applikation eine Leistungsaufnahme von 5 bis 13 Watt. Auf dem Chip finden sich 2 MByte L2-Cache, zwei DDR2-Speichercontroller, Hardwarebeschleunigung für TCP/IP und Kryptographie (IPsec und SSL) sowie ISCSI- und Raid-Funktionen. Des Weiteren besitzt der Chip ein konfigurierbares I/O-System mit insgesamt acht PCI-Express-Interfaces, vier 1-GBit/s- und zwei 10-GBit/s-Ethernet-Schnittstellen.
Renesas ist mit den Chip-Architekturen Super H und M32R vertreten [12]. Die Baureihe SH-Mobile ist für Applikationen in Mobiltelefonen ausgelegt. SH7763, die neueste Super-H-Entwicklung, zielt auf anspruchsvolle Applikationen wie Highend-Audio- und -Video-Equipment, Settop-Boxen und Medienserver, aber auch auf Telekommunikationshardware wie Residental Gateways, Router und IP-Telefone. Der SoC hat einen 32-Bit-SH-4A-CPU-Kern und eine Floatingpoint-Unit, die 1,9 Gflops verarbeitet bei 266 MHz. Der Chip enthält eine Multimediacard-Schnittstelle, ein Simcard-Interface, ein vierkanaliges Serial Sound Interface (SSI), einen A/D- und einen D/A-Wandler, einen PCMCIA-Card-Controller, zwei 1-GBit/s-Ethernet-Ports und einen TFT-Displaycontroller.
ST Microelectronics, ebenfalls ein gut eingeführter SoC-Mitspieler, verkauft auf ARM-Architektur basierende SoC-Prozessoren [13]. Mit der STM32-Produktfamilie ist ST Microelectronics einer der ersten Hersteller, der Prozessoren mit ARM-Cortex-M3-Kern [14] anbietet. Deren Architektur versucht den Zielkonflikt von Performance, Energieverbrauch und Kosten möglichst gut zu lösen. Axel Bauer
|
| Whitepaper |
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|