Auch genannt: SoC; System on Chip; System-on-Chip
Ein System-on-a-Chip (SoC) ist ein integrierter Schaltkreis, der mehrere Bausteine eines vollständigen Rechnersystems auf einem Chip zusammenführt. Dazu gehören mindestens Rechenlogik und deren Anbindung; je nach Einsatzgebiet kommen Arbeitsspeicherbereiche, Grafik- oder Signalverarbeitung, Sicherheitsfunktionen, Ein-/Ausgabe-Controller und Schnittstellen hinzu. Arm beschreibt SoC-Entwurf entsprechend als Zusammenführung von Prozessoren, Speicher, Interconnects und Peripherie auf einem einzelnen Chip.Arm Education: SoC Integration
Ein SoC ist nicht einfach ein besonders schneller Prozessor. Ein Prozessor beziehungsweise eine CPU führt vor allem allgemeine Programmbefehle aus. Ein SoC umfasst daneben die Infrastruktur, die solche Recheneinheiten mit Speicher und Gerätefunktionen verbindet. Ein modernes SoC kann daher mehrere unterschiedliche Rechenkerne enthalten: etwa CPU-Kerne für das Betriebssystem, einen Grafikprozessor für Bilder und eine spezialisierte Einheit für Signal-, Bild- oder KI-Berechnungen.
Welche Blöcke tatsächlich integriert sind, ist eine Produktentscheidung. Das technische Referenzhandbuch zum i.MX 8M Nano von NXP verzeichnet beispielsweise getrennte Abschnitte für Cortex-A53- und Cortex-M7-Plattform, On-Chip-RAM, Interconnect, Takt- und Energiemanagement, DMA, externe Speicheranbindung, USB, Ethernet, Grafik und Multimedia.NXP: i.MX 8M Nano Applications Processor Reference Manual Diese Aufzählung beschreibt ein konkretes Produkt, nicht eine Mindestliste für jedes SoC. Sie zeigt aber, warum der Begriff ein Gesamtsystem auf dem Chip meint.
Die Rechenblöcke eines SoC brauchen gemeinsame Wege zu Daten und Geräten. Dafür sorgt ein Interconnect: Er verbindet die Kerne, Speichercontroller und Peripherie und leitet Zugriffe an die passende Adresse weiter. Speicher ist dabei nicht nur „RAM außen am Gerät“. Ein SoC kann kleine schnelle Speicherbereiche auf dem Chip besitzen und zugleich Controller für externen Arbeitsspeicher bereitstellen. Welche Daten wo liegen und wer sie lesen oder schreiben darf, beeinflusst Leistung, Energiebedarf und Sicherheit.
Peripherieblöcke übernehmen Aufgaben, für die die CPU nicht jede einzelne Aktion steuern soll. Beispiele sind Timer, GPIO-Pins, USB-Controller, Netzwerkanschlüsse, Display-Schnittstellen oder DMA-Controller. DMA kann Daten zwischen Speicher und einem Gerät übertragen, ohne dass die CPU jeden Datenwert selbst kopieren muss. Interrupts informieren die Software darüber, dass ein Gerät Aufmerksamkeit benötigt; Takt- und Energieverwaltung können einzelne Bereiche aktivieren, drosseln oder abschalten.
Viele SoCs kombinieren deshalb allgemeine und spezialisierte Verarbeitung. Das Referenzhandbuch der TI-J784S4-Plattform beschreibt in einem SoC unter anderem Cortex-A72- und Cortex-R5F-Kerne, DSPs, Matrix-Multiplikationsbeschleuniger, GPU, On-Chip-Speicher, externe Speicherinterfaces, DMA sowie Kommunikations- und Multimedia-Schnittstellen.Texas Instruments: J742S2/AM69x-27/TDA4VPE/TDA4APE Technical Reference Manual Daraus folgt nicht, dass jedes Smartphone oder jedes eingebettete Gerät diese Ausstattung hat: Die Integration richtet sich nach Aufgabe, Kostenrahmen, Strombedarf und den nötigen Schnittstellen.
In einem Smartphone koordiniert das SoC typischerweise die Ausführung des Betriebssystems und von Apps, die Darstellung auf dem Display, Funk- und Speicherschnittstellen sowie die Verarbeitung von Kamera- oder Audiodaten. Die CPU bearbeitet dabei nicht zwangsläufig jedes Pixel einer Aufnahme. Für passende Teilaufgaben kann die Hardware einen Grafik-, Bildsignal- oder anderen Beschleuniger einsetzen. Die Software nutzt diese Funktionen über Treiber und Betriebssystem-Schnittstellen; welche Fähigkeiten verfügbar sind, hängt vom konkreten Chip und der Geräteintegration ab.
Die hochintegrierte Bauweise spart nicht automatisch in jedem Szenario Energie. Sie kann aber Wege zwischen Bausteinen verkürzen und spezialisierte Logik ermöglichen. Gleichzeitig entstehen Abhängigkeiten: Ist ein benötigter Block nicht vorhanden oder lässt sich seine Firmware nicht aktualisieren, kann er nicht einfach wie eine Steckkarte ersetzt werden. Deshalb unterscheiden sich SoCs selbst innerhalb einer Produktfamilie in Schnittstellen, Speicheranbindung, Sicherheitsmerkmalen und Beschleunigern.
Ein Befehlssatz (Instruction Set Architecture, ISA) legt fest, welche Maschinenbefehle eine kompatible CPU ausführen kann und wie diese aus Sicht von Software beschrieben sind. Das RISC-V-Handbuch dokumentiert die unprivilegierte RISC-V-Architektur und ihre ISA-Module.RISC-V International: The RISC-V Instruction Set Manual, Volume I Ein SoC ist eine andere Ebene: Es kombiniert eine oder mehrere konkrete Rechenimplementierungen mit Speicher-, Interconnect- und Geräteblöcken. Zwei SoCs können denselben CPU-Befehlssatz verwenden und sich dennoch bei Grafik, Funk, Speichercontroller, Sicherheit oder Ein-/Ausgabe deutlich unterscheiden.
Auch die Zahl der CPU-Kerne entscheidet nicht allein darüber, was ein SoC kann. Relevant sind zudem Speicherhierarchie, Bandbreite, Betriebssystem- und Treiberunterstützung sowie die Frage, ob eine Anwendung eine vorhandene Spezialfunktion überhaupt nutzen kann. Aus Datenblattangaben zu Taktfrequenz oder Kernzahl lässt sich daher keine allgemeine Aussage über die Geschwindigkeit eines gesamten Geräts ableiten.
Ein Prozessor oder eine CPU ist ein Rechenbaustein; er kann Teil eines SoC sein. Ein Mikrocontroller ist meist stärker auf Steuerungsaufgaben ausgerichtet und integriert häufig CPU, Speicher und Peripherie in einem Chip. Damit ist er oft selbst eine Form hochintegrierter Hardware, wird aber im Sprachgebrauch von leistungsstärkeren Anwendungsprozessor-SoCs unterschieden. Ein System-in-Package (SiP) fasst mehrere getrennte Chips in einem gemeinsamen Gehäuse zusammen; bei einem SoC befinden sich die integrierten Funktionen auf einem einzelnen Siliziumchip.