ARM11-basierende SoCs - preiswerte Alternative für Embedded-Boards

Dank ihrer hohen Rechenleistung und der Vielzahl integrierter Peripherie-Funktionen eignen sich ARM11-basierenden Mikrocontroller wie der S3C6410X von Samsung insbesondere für Anwendungen in der Industrie- und Medizintechnik. Grund genug, einmal einen genaueren Blick auf die Architektur und Eigenschaften dieser Produkte zu werfen.

Dank ihrer hohen Rechenleistung und der Vielzahl integrierter Peripherie-Funktionen eignen sich ARM11-basierenden Mikrocontroller wie der S3C6410X von Samsung insbesondere für Anwendungen in der Industrie- und Medizintechnik. Grund genug, einmal einen genaueren Blick auf die Architektur und Eigenschaften dieser Produkte zu werfen.

Was haben mobile und stationäre Systeme mit TFT-Anzeige, Media-Player, Telefon- und Funkgeräte, industrielle Steuerungen und Signalverarbeitungssysteme gemeinsam? Sie benötigen alle eine vergleichsweise hohe Rechenleistung und sollen nach Möglichkeit nichts kosten. Nun gibt es natürlich auch ARM11-basierende SoCs nicht geschenkt, aber zumindest bekommt man in Regel erstaunlich viel Leistung für vergleichweise wenig Geld.

Als Basis für die ARM11-Controller dient die bewährte Harvard-Architektur. Diese ermöglicht einen gleichzeitigen Zugriff auf Programmcode und Daten, wobei beim S3C6410X der Zugriff auf den Programm-Code über den 16 Kbyte großen Instruction-Cache und das ebenfalls 16 Kbyte große Instruction-TCM erfolgt. Da Caches vom Controller dynamisch verwaltet werden, hilft das Instruction-TCM bei der Bearbeitung von Befehlen, die deterministisch behandelt werden müssen. Dazu zählen beispielsweise Interrupts.

Die Bereitstellung der Daten erfolgt über den ebenfalls 16 Kbyte großen Daten-Cache und das gleich große Daten-TCM. Letzteres kann blockweise Daten enthalten, die eine aufwendige Verarbeitung fordern, zum Beispiel Audio- oder Videodaten. Sowohl beim Daten- wie auch beim Instruction-TCM werden Daten über DMA von anderen Speicherbereichen zur Verfügung gestellt.

Die Verbindung zwischen der ARM1178JZF-S CPU-Core (Bild 1) und den Peripherien bzw. Speichern erfolgt über die Level 2-Schnittstelle. Daten werden dabei entsprechend des AMBA AXI-Protokolls gesendet und empfangen.

AMBA steht für Advanced Microcontroller Bus Architecture, es handelt sich dabei um ARM-eigene IP.  In der AMBA 3-Spezifikation sind vier Schnittstellen-Protokolle spezifiziert: AHB (Advanced High-Performance Bus), APB (Advanced Peripheral Bus), ATB (Advanced Trace Bus) und AXI (Advanced eXtensible Interface).

Das Advanced eXtensible Interface (AXI, Bild 2) stellt über 64 bit Bandbreite die Versorgung der Caches mit neuen Daten sicher und ist ein wesentliches Element zur Steigerung der Leistungsfähigkeit der ARM-Architektur. Es basiert auf einem Master-Slave-Konzept. Da mehrere Master am Bus aktiv sein können, wird der Zugriff durch ein Busarbiter koordiniert.Vor dem eigentlichen Datentransfer über AXI werden Adress- und Steuerinformationen zwischen Master und Slave ausgetauscht. Dabei werden neben der Zieladresse auch Informationen zu Datenlänge, Transfergröße und Übertragungseigenschaften (burst modes, caching oder buffering control, atomic access,..) bereitgestellt.

AXI ermöglicht auch »out-of-order transaction completion«. Hierbei handelt es sich um ein Verfahren, welches jede einzelne über die Schnittstelle stattfindende Transaktion mit einem ID-Tag versieht. Dies ermöglicht das Senden und Empfangen von Daten, ohne dass die richtige Reihenfolge eingehalten werden muss. Dadurch können beispielsweise Datenströme von langsamen Slaves unterbrochen werden, um zwischendurch die Daten von schnellen Slaves zu transportieren. Auch getrennte unidirektionale Lese- und Schreibkanäle sowie die Unterstützung von »unaligned data transfers« beschleunigen die Kommunikation über AXI. AXI ist bis zu einer Busbreite von 1024 bit definiert. In heute gängigen Systemen findet man Busbreiten von 64 bit.

Der Advanced-high-performance-Bus (AHB) unterstützt ebenfalls große Busbandbreiten und einen hohen Datendurchsatz, bietet aber weniger Flexibilität bei der Verwaltung und Steuerung von mehreren Mastern sowie bei der Optimierung von Datenströmen auf dem Bus.