System auf einem Chip - System on a chip

Aus Wikipedia, der freien Enzyklopädie

Der Raspberry Pi verwendet ein System auf einem Chip als fast vollständig enthaltenen Mikrocomputer . Dieser SoC enthält keinerlei Datenspeicher, wie er für einen Mikroprozessor-SoC üblich ist.

Ein System auf einem Chip ( SoC ; / ˌ ɛ s ˌ s Ï / ES-oh- SEE oder / s ɒ k / Socke ) ist eine integrierte Schaltung (auch als "Chip" bekannt ist ) , daß alle oder die meisten Komponenten integriert eines Computers oder eines anderen elektronischen Systems . Zu diesen Komponenten gehören fast immer eine Zentraleinheit (CPU), ein Speicher , Eingangs- / Ausgangsanschlüsse und ein Sekundärspeicher , häufig zusammen mit anderen Komponenten wie Funkmodems und einer Grafikverarbeitungseinheit (GPU) - alles auf einem einzigen Substrat oder Mikrochip. Es kann digitale , analoge , gemischte und häufig hochfrequente Signalverarbeitungsfunktionen enthalten (andernfalls wird es nur als Anwendungsprozessor betrachtet).

Hochleistungs-SoCs werden häufig mit dedizierten und physisch getrennten Speicher- und Sekundärspeicherchips (fast immer LPDDR- und eUFS- bzw. eMMC- Chips) gepaart , die in einer sogenannten PoP-Konfiguration ( Package on Package ) über den SoC geschichtet werden können oder in der Nähe des SoC platziert werden. Darüber hinaus können SoCs separate drahtlose Modems verwenden.

SoCs ist im Gegensatz zu der traditionellen gemeinsamen Motherboard basierenden PC - Architektur , welche Komponenten basierend auf Funktion und verbindet sie über eine zentrale Schnittstellenleiterplatte trennt. Während ein Motherboard abnehmbare oder austauschbare Komponenten beherbergt und verbindet, integrieren SoCs alle diese Komponenten in einer einzigen integrierten Schaltung. Ein SoC integriert normalerweise eine CPU, Grafik- und Speicherschnittstellen, Festplatten- und USB-Konnektivität, Direktzugriffs- und Nur-Lese- Speicher sowie einen Sekundärspeicher und / oder deren Controller auf einem einzigen Schaltkreis-Chip, während ein Motherboard diese Module als verbindet diskrete Komponenten oder Erweiterungskarten .

Ein SoC integriert einen Mikrocontroller , einen Mikroprozessor oder möglicherweise mehrere Prozessorkerne mit Peripheriegeräten wie einer GPU , Wi-Fi- und Mobilfunknetz -Funkmodems und / oder einem oder mehreren Coprozessoren . Ähnlich wie ein Mikrocontroller einen Mikroprozessor mit Peripherieschaltungen und Speicher integriert, kann ein SoC als Integration eines Mikrocontrollers mit noch fortschrittlicheren Peripheriegeräten angesehen werden . Eine Übersicht über die Integration von Systemkomponenten finden Sie unter Systemintegration .

Eng integrierte Computersystemdesigns verbessern die Leistung und reduzieren den Stromverbrauch sowie die Halbleiterchipfläche als Multi-Chip-Designs mit gleichwertiger Funktionalität. Dies geht zu Lasten einer verringerten Austauschbarkeit von Komponenten. Per Definition ist SoC - Design vollständig oder nahezu vollständig in der verschiedenen Komponenten integriert Module . Aus diesen Gründen gab es einen allgemeinen Trend zu einer engeren Integration von Komponenten in die Computerhardwareindustrie , was teilweise auf den Einfluss von SoCs und auf Lehren aus den Märkten für mobile und eingebettete Computer zurückzuführen ist. SoCs können als Teil eines größeren Trends zu Embedded Computing und Hardwarebeschleunigung angesehen werden .

SoCs sind in den Märkten für mobile Computer (wie Smartphones und Tablet-Computer ) und Edge-Computing sehr verbreitet . Sie werden auch häufig in eingebetteten Systemen wie WLAN-Routern und dem Internet der Dinge verwendet .

Typen

Mikrocontroller- basiertes System auf einem Chip

Im Allgemeinen gibt es vier unterscheidbare Arten von SoCs:

AMD Am286ZX / LX, SoC basierend auf Intel 80286

Anwendungen

SoCs können auf jede Computeraufgabe angewendet werden. Sie werden jedoch typischerweise in mobilen Computern wie Tablets, Smartphones, Smartwatches und Netbooks sowie in eingebetteten Systemen und in Anwendungen verwendet, in denen zuvor Mikrocontroller verwendet wurden.

Eingebettete Systeme

Wo bisher nur Mikrocontroller eingesetzt werden konnten, gewinnen SoCs auf dem Markt für eingebettete Systeme zunehmend an Bedeutung. Eine engere Systemintegration bietet eine bessere Zuverlässigkeit und mittlere Zeit zwischen Ausfällen , und SoCs bieten erweiterte Funktionen und Rechenleistung als Mikrocontroller. Die Anwendungen umfassen AI Beschleunigung , Embedded Machine Vision , Datenerfassung, Telemetrie , Vektorverarbeitung und Ambient Intelligence . Oft zielen eingebettete SoCs auf das Internet der Dinge , das industrielle Internet der Dinge und Edge-Computing- Märkte ab.

Mobile Computing

Auf mobilen Computern basierende SoCs bündeln immer Prozessoren, Speicher, On-Chip- Caches , drahtlose Netzwerkfunktionen und häufig Hardware und Firmware für Digitalkameras . Mit zunehmender Speichergröße haben High-End-SoCs häufig keinen Speicher und keinen Flash-Speicher. Stattdessen werden der Speicher und der Flash-Speicher direkt neben oder über ( Paket auf Paket ) dem SoC platziert. Einige Beispiele für Mobile-Computing-SoCs sind:

Persönliche Computer

1992 produzierte Acorn Computers die Personal Computer A3010, A3020 und A4000 mit dem ARM250 SoC. Es kombinierte den ursprünglichen Acorn ARM2-Prozessor mit einem Speichercontroller (MEMC), einem Videocontroller (VIDC) und einem E / A-Controller (IOC). Bei früheren Acorn ARM- Computern waren dies vier diskrete Chips. Der ARM7500-Chip war der SoC der zweiten Generation, der auf den Controllern ARM700, VIDC20 und IOMD basierte, und wurde in eingebetteten Geräten wie Set-Top-Boxen sowie späteren Acorn-PCs weitgehend lizenziert.

SoCs Mainstream werden angewendet PCs als 2018. Sie besonders auf angewendet werden Laptops und Tablet - PCs . Hersteller von Tablets und Laptops haben aus den Märkten für eingebettete Systeme und Smartphones Lehren über einen geringeren Stromverbrauch, eine bessere Leistung und Zuverlässigkeit durch eine engere Integration von Hardware- und Firmware- Modulen sowie über LTE und andere auf dem Chip integrierte drahtlose Netzwerkkommunikation (integrierte Netzwerkschnittstellen-Controller ) gezogen.

ARM- basiert:

x86- basiert:

Struktur

Ein SoC besteht aus Hardware- Funktionseinheiten , einschließlich Mikroprozessoren , auf denen Softwarecode ausgeführt wird , sowie einem Kommunikationssubsystem zum Verbinden, Steuern, Leiten und Verbinden dieser Funktionsmodule.

Funktionskomponenten

Prozessorkerne

Ein SoC muss mindestens einen Prozessorkern haben , aber normalerweise hat ein SoC mehr als einen Kern. Prozessorkerne können ein Mikrocontroller , ein Mikroprozessor (μP), ein digitaler Signalprozessor (DSP) oder ein anwendungsspezifischer Befehlssatzprozessor (ASIP) sein. ASIPs verfügen über Befehlssätze , die für eine Anwendungsdomäne angepasst und effizienter als allgemeine Anweisungen für einen bestimmten Workload-Typ sind. Multiprozessor-SoCs haben per Definition mehr als einen Prozessorkern.

Ob Single-Core-, Multi-Core- oder Manycore- Prozessorkerne, SoC-Prozessorkerne verwenden normalerweise RISC- Befehlssatzarchitekturen. RISC-Architekturen sind gegenüber CISC- Prozessoren für SoCs vorteilhaft, da sie weniger digitale Logik und damit weniger Leistung und Fläche an Bord erfordern. In den Märkten für eingebettete und mobile Computer sind Fläche und Leistung häufig stark eingeschränkt. Insbesondere SoC Prozessorkerne häufig die Verwendung ARM - Architektur , da es sich um eine Soft - Prozessor als angegeben IP - Core und ist energieeffizienter als x86 .

Erinnerung

SoCs müssen über Halbleiterspeicherblöcke verfügen , um ihre Berechnung durchführen zu können, ebenso wie Mikrocontroller und andere eingebettete Systeme . Je nach Anwendung kann der SoC-Speicher eine Speicherhierarchie und eine Cache-Hierarchie bilden . Auf dem Markt für mobile Computer ist dies üblich, aber bei vielen eingebetteten Mikrocontrollern mit geringem Stromverbrauch ist dies nicht erforderlich. Zu den Speichertechnologien für SoCs gehören ein Nur-Lese-Speicher (ROM), ein Direktzugriffsspeicher (RAM), ein elektrisch löschbarer programmierbarer ROM ( EEPROM ) und ein Flash-Speicher . Wie in anderen Computersystemen kann RAM in relativ schnelles, aber teureres statisches RAM (SRAM) und das langsamere, aber billigere dynamische RAM (DRAM) unterteilt werden. Wenn ein SoC eine Cache- Hierarchie hat, wird SRAM normalerweise verwendet, um Prozessorregister und L1-Caches der Kerne zu implementieren, während DRAM für niedrigere Ebenen der Cache-Hierarchie einschließlich des Hauptspeichers verwendet wird . "Hauptspeicher" kann spezifisch für einen einzelnen Prozessor sein (der mehrkernig sein kann ), wenn der SoC über mehrere Prozessoren verfügt. In diesem Fall handelt es sich um verteilten Speicher , der über § Intermodule Communication On-Chip gesendet werden muss, damit ein anderer auf ihn zugreifen kann Prozessor. Weitere Informationen zu Speicherproblemen bei mehreren Verarbeitungen finden Sie unter Cache-Kohärenz und Speicherlatenz .

Schnittstellen

SoCs enthalten externe Schnittstellen , typischerweise für Kommunikationsprotokolle . Diese basieren häufig auf Industriestandards wie USB , FireWire , Ethernet , USART , SPI , HDMI , I²C usw. Diese Schnittstellen unterscheiden sich je nach vorgesehener Anwendung. Möglicherweise werden auch drahtlose Netzwerkprotokolle wie Wi-Fi , Bluetooth , 6LoWPAN und Nahfeldkommunikation unterstützt.

Bei Bedarf enthalten SoCs analoge Schnittstellen, einschließlich Analog-Digital- und Digital-Analog-Wandler , häufig zur Signalverarbeitung . Diese können möglicherweise mit verschiedenen Arten von Sensoren oder Aktoren , einschließlich intelligenter Wandler, verbunden werden . Sie können mit anwendungsspezifischen Modulen oder Abschirmungen verbunden werden. Oder sie befinden sich im SoC, z. B. wenn ein analoger Sensor in den SoC eingebaut ist und seine Messwerte für die mathematische Verarbeitung in digitale Signale umgewandelt werden müssen.

Digitale Signalprozessoren

DSP-Kerne ( Digital Signal Processor ) sind häufig in SoCs enthalten. Sie führen Signalverarbeitungsvorgänge in SoCs für Sensoren , Aktoren , Datenerfassung , Datenanalyse und Multimedia-Verarbeitung durch. DSP-Kerne verfügen typischerweise über sehr lange Befehlswort- (VLIW) und Einzelbefehls-, Mehrfachdaten- (SIMD) Befehlssatzarchitekturen und sind daher in hohem Maße für die Ausnutzung der Parallelität auf Befehlsebene durch Parallelverarbeitung und superskalare Ausführung geeignet . DSP-Kerne enthalten meistens anwendungsspezifische Anweisungen und sind daher typischerweise anwendungsspezifische Befehlssatzprozessoren (ASIP). Eine derartige anwendungsspezifische Anweisungen entsprechen dedizierter Hardware Funktionseinheiten , die diese Befehle berechnen.

Typische DSP-Anweisungen umfassen Multiplizieren-Akkumulieren , schnelle Fourier-Transformation , fusioniertes Multiplizieren-Addieren und Faltungen .

Andere

Wie bei anderen Computersystemen benötigen SoCs Zeitquellen , um Taktsignale zu erzeugen , die Ausführung von SoC-Funktionen zu steuern und Signalverarbeitungsanwendungen des SoC bei Bedarf einen Zeitkontext bereitzustellen . Beliebte Zeitquellen sind Quarzoszillatoren und Phasenregelkreise .

SoC - Peripheriegeräte einschließlich Zähler -timers, Echtzeit - Timer und Power-On - Reset - Generatoren. SoCs umfassen auch Spannungsregler und Energieverwaltungsschaltungen .

Intermodule Kommunikation

SoCs umfassen viele Ausführungseinheiten . Diese Einheiten müssen häufig Daten und Anweisungen hin und her senden . Aus diesem Grund erfordern alle bis auf die trivialsten SoCs Kommunikationssubsysteme . Ursprünglich, wie bei anderen Mikrocomputer - Technologien, Datenbus - Architekturen verwendet wurden, aber vor kurzem Design basierend auf spärlichen Sprechnetzen bekannt als Netzwerke-on-Chip (NoC) hat in dem Vordergrund und werden voraussichtlich zu überholen Bus - Architekturen für SoC - Design in naher Zukunft gestiegen .

Busbasierte Kommunikation

In der Vergangenheit verband ein gemeinsam genutzter globaler Computerbus normalerweise die verschiedenen Komponenten, die auch als "Blöcke" des SoC bezeichnet werden. Ein sehr verbreiteter Bus für die SoC-Kommunikation ist der lizenzfreie AMBA- Standard (Advanced Microcontroller Bus Architecture ) von ARM .

Controller für den direkten Speicherzugriff leiten Daten direkt zwischen externen Schnittstellen und dem SoC-Speicher weiter, wobei die CPU oder die Steuereinheit umgangen wird , wodurch der Datendurchsatz des SoC erhöht wird . Dies ähnelt einigen Gerätetreibern von Peripheriegeräten auf komponentenbasierten PC-Architekturen mit mehreren Chipmodulen .

Die Skalierbarkeit von Computerbussen ist begrenzt und sie unterstützen nur bis zu zehn Kerne ( Multicore ) auf einem einzelnen Chip. Die Drahtverzögerung ist aufgrund der fortgesetzten Miniaturisierung nicht skalierbar , die Systemleistung skaliert nicht mit der Anzahl der angeschlossenen Kerne, die Betriebsfrequenz des SoC muss mit jedem zusätzlichen angeschlossenen Kern abnehmen , damit die Stromversorgung nachhaltig ist, und lange Drähte verbrauchen viel Strom. Diese Herausforderungen sind für die Unterstützung von Manycore- Systemen auf dem Chip unerschwinglich .

Netzwerk auf einem Chip

In den späten 2010er Jahren hat sich ein Trend herausgebildet, dass SoCs Kommunikationssubsysteme in Form einer netzwerkartigen Topologie anstelle von busbasierten Protokollen implementieren . Der Trend zu mehr Prozessorkernen auf SoCs hat dazu geführt, dass die Kommunikationseffizienz auf dem Chip zu einem der Schlüsselfaktoren für die Bestimmung der Gesamtsystemleistung und -kosten geworden ist. Dies hat zu der Entstehung von Verbindungsnetzwerken geführt , mit Router -basierte Paketvermittlung als „bekannten Netzen auf einem Chip “ (NoCs) die zur Überwindung von Engpässen von Bus-basierten Netzwerken.

Networks-on-Chip bieten Vorteile wie ziel- und anwendungsspezifisches Routing , höhere Energieeffizienz und geringere Wahrscheinlichkeit von Buskonflikten . Network-on-Chip-Architekturen lassen sich von Kommunikationsprotokollen wie TCP und der Internetprotokollsuite für die On-Chip-Kommunikation inspirieren , obwohl sie normalerweise weniger Netzwerkschichten aufweisen . Optimale Network-on-Chip- Netzwerkarchitekturen sind ein fortlaufendes Gebiet von großem Forschungsinteresse. NoC - Architekturen reichen von traditionellen verteilten Rechnernetztopologien wie Torus , hypercube , Maschen und Baum Netzwerke zu genetischem Algorithmus Scheduling zu randomisierten Algorithmen wie Irrfahrten mit Verzweigung und randomisierten Zeit zu Live (TTL).

Viele SoC-Forscher betrachten NoC-Architekturen als die Zukunft des SoC-Designs, da gezeigt wurde, dass sie die Leistungs- und Durchsatzanforderungen von SoC-Designs effizient erfüllen. Aktuelle NoC-Architekturen sind zweidimensional. Das 2D-IC-Design bietet nur begrenzte Möglichkeiten für die Grundrissplanung , da die Anzahl der Kerne in SoCs zunimmt. Mit dem Aufkommen dreidimensionaler integrierter Schaltkreise (3DICs) versuchen SoC-Designer, dreidimensionale On-Chip-Netzwerke aufzubauen, die als 3DNoCs bekannt sind.

Design-Flow

SoC-Designablauf

Ein System auf einem Chip besteht sowohl aus der in § Struktur beschriebenen Hardware als auch aus der Software, die die Kerne, Peripheriegeräte und Schnittstellen des Mikrocontrollers, Mikroprozessors oder digitalen Signalprozessors steuert. Der Entwurfsablauf für einen SoC zielt darauf ab, diese Hardware und Software gleichzeitig zu entwickeln, was auch als architektonisches Co-Design bezeichnet wird. Der Entwurfsablauf muss auch Optimierungen ( § Optimierungsziele ) und Einschränkungen berücksichtigen .

Die meisten sind aus SoCs präqualifizierter Hardwarekomponente entwickelt IP - Kern - Spezifikationen für die Hardware - Elemente und Ausführungseinheiten , zusammenfassend als „Bausteine“, wie oben beschrieben, zusammen mit Software - Gerätetreiber , die dessen Betrieb steuern können. Von besonderer Bedeutung sind die Protokollstapel , die Schnittstellen nach Industriestandard wie USB steuern . Die Hardwareblöcke werden unter Verwendung computergestützter Entwurfswerkzeuge zusammengesetzt , insbesondere elektronischer Entwurfsautomatisierungswerkzeuge . Die Softwaremodule werden mithilfe einer softwareintegrierten Entwicklungsumgebung integriert .

SoCs-Komponenten werden häufig auch in höheren Programmiersprachen wie C ++ , MATLAB oder SystemC entworfen und durch HLS-Tools ( High-Level-Synthese ) wie C zu HDL oder Flow zu HDL in RTL- Designs konvertiert . Mit HLS-Produkten, die als "algorithmische Synthese" bezeichnet werden, können Entwickler C ++ verwenden, um System-, Schaltungs-, Software- und Verifizierungsstufen in einer Hochsprache zu modellieren und zu synthetisieren, die Computeringenieuren unabhängig von Zeitskalen, die normalerweise in HDL spezifiziert sind, allgemein bekannt ist . Andere Komponenten können Software bleiben und kompiliert und in Softcore-Prozessoren eingebettet werden, die im SoC als Module in HDL als IP-Kerne enthalten sind .

Sobald die Architektur des SoC definiert wurde, werden alle neuen Hardwareelemente in eine abstrakte Hardwarebeschreibungssprache geschrieben, die als Register Transfer Level (RTL) bezeichnet wird und das Schaltungsverhalten definiert, oder durch Synthese auf hoher Ebene aus einer Sprache auf hoher Ebene in RTL synthetisiert. Diese Elemente werden in einer Hardwarebeschreibungssprache miteinander verbunden, um das vollständige SoC-Design zu erstellen. Die Logik, die angegeben wird, um diese Komponenten zu verbinden und zwischen möglicherweise verschiedenen Schnittstellen zu konvertieren, die von verschiedenen Anbietern bereitgestellt werden, wird als Klebelogik bezeichnet .

Designüberprüfung

Chips werden auf Validierungskorrektheit überprüft, bevor sie an eine Halbleitergießerei gesendet werden . Dieser Prozess wird als Funktionsüberprüfung bezeichnet und macht einen erheblichen Teil des Zeit- und Energieverbrauchs im Lebenszyklus des Chipdesigns aus , der häufig mit 70% angegeben wird. Mit der zunehmenden Komplexität von Chips werden Hardware-Überprüfungssprachen wie SystemVerilog , SystemC , e und OpenVera verwendet. Bugs in der Verifikationsstufe gefunden wird den Designer berichtet.

Traditionell haben Ingenieure Simulationsbeschleunigung, Emulation oder Prototyping auf umprogrammierbarer Hardware eingesetzt , um Hardware und Software für SoC-Designs vor der Fertigstellung des Designs, das als Tape-Out bezeichnet wird, zu verifizieren und zu debuggen . Feldprogrammierbare Gate-Arrays (FPGAs) werden für das Prototyping von SoCs bevorzugt, da FPGA-Prototypen neu programmierbar sind, Debugging ermöglichen und flexibler sind als anwendungsspezifische integrierte Schaltkreise (ASICs).

Mit hoher Kapazität und schneller Kompilierungszeit sind Simulationsbeschleunigung und -emulation leistungsstarke Technologien, die einen umfassenden Einblick in Systeme bieten. Beide Technologien arbeiten jedoch langsam in der Größenordnung von MHz, was erheblich langsamer sein kann - bis zu 100-mal langsamer - als die Betriebsfrequenz des SoC. Beschleunigungs- und Emulationsboxen sind mit über 1 Million US-Dollar ebenfalls sehr groß und teuer.

Im Gegensatz dazu verwenden FPGA-Prototypen FPGAs direkt, damit Ingenieure die volle Betriebsfrequenz eines Systems mit realen Stimuli validieren und testen können. Tools wie Certus werden verwendet, um Sonden in die FPGA-RTL einzufügen, die Signale zur Beobachtung zur Verfügung stellen. Dies wird zum Debuggen von Hardware-, Firmware- und Software-Interaktionen über mehrere FPGAs mit ähnlichen Funktionen wie bei einem Logikanalysator verwendet.

Parallel dazu werden die Hardwareelemente gruppiert und einem logischen Synthesevorgang unterzogen , bei dem Leistungsbeschränkungen wie Betriebsfrequenz und erwartete Signalverzögerungen angewendet werden. Dies erzeugt eine Ausgabe, die als Netzliste bekannt ist und das Design als physikalische Schaltung und ihre Verbindungen beschreibt. Diese Netzlisten werden mit dem kombinierten glue logic Verbinden der Komponenten , die die schematische Beschreibung des SoC als eine Schaltung zu erzeugen , die sein können gedruckt auf einem Chip. Dieser Prozess wird als Ort und Route bezeichnet und geht dem Tape-Out voraus , falls die SoCs als anwendungsspezifische integrierte Schaltkreise (ASIC) hergestellt werden.

Optimierungsziele

SoCs müssen optimieren Stromverbrauch , Bereich auf Chip , Kommunikation, Positionierung für Örtlichkeit zwischen modularen Einheiten und anderen Faktoren. Optimierung ist notwendigerweise ein Entwurfsziel von SoCs. Wenn keine Optimierung erforderlich wäre, würden die Ingenieure eine Multi-Chip-Modularchitektur verwenden, ohne die Flächennutzung, den Stromverbrauch oder die Leistung des Systems in gleichem Maße zu berücksichtigen.

Es folgen gemeinsame Optimierungsziele für SoC-Designs mit Erläuterungen zu diesen. Im Allgemeinen kann die Optimierung einer dieser Größen ein hartes kombinatorisches Optimierungsproblem sein und kann tatsächlich ziemlich leicht NP-hart sein . Daher sind häufig ausgefeilte Optimierungsalgorithmen erforderlich, und in einigen Fällen kann es praktisch sein, Approximationsalgorithmen oder Heuristiken zu verwenden. Darüber hinaus enthalten die meisten SoC-Designs mehrere Variablen zur gleichzeitigen Optimierung , sodass im SoC-Design nach pareto-effizienten Lösungen gesucht wird. Oft stehen die Ziele der Optimierung einiger dieser Größen in direktem Widerspruch, was die Entwurfsoptimierung von SoCs weiter komplexer macht und Kompromisse beim Systemdesign einführt.

Weitere Informationen zu Kompromissen und Anforderungsanalysen finden Sie unter Requirements Engineering .

Ziele

Energieverbrauch

SoCs sind optimiert, um die zur Ausführung der SoC-Funktionen verwendete elektrische Leistung zu minimieren . Die meisten SoCs müssen wenig Strom verbrauchen. SoC-Systeme erfordern häufig eine lange Akkulaufzeit (z. B. Smartphones ), können möglicherweise Monate oder Jahre verbringen, ohne dass eine Stromquelle ihre autonome Funktion aufrechterhalten muss, und sind häufig im Stromverbrauch begrenzt, da eine große Anzahl eingebetteter SoCs in einem Gebiet miteinander vernetzt ist. Darüber hinaus können die Energiekosten hoch sein, und durch Energieeinsparung werden die Gesamtbetriebskosten des SoC gesenkt . Schließlich kann Abwärme durch hohen Energieverbrauch andere Schaltungskomponenten beschädigen, wenn zu viel Wärme abgeführt wird, was einen weiteren pragmatischen Grund für die Energieeinsparung darstellt. Die in einer Schaltung verbrauchte Energiemenge ist das Integral der in Bezug auf die Zeit verbrauchten Leistung , und die durchschnittliche Stromverbrauchsrate ist das Produkt aus Strom und Spannung . Entsprechend ist nach dem Ohmschen Gesetz die Leistung das Stromquadrat mal der Widerstand oder die Spannung im Quadrat geteilt durch den Widerstand :

SoCs sind in häufig eingebettete tragbare Geräte wie Smartphones , GPS - Navigationsgeräte , digitale Uhren (einschließlich smartwatches ) und Netbooks . Kunden wünschen sich eine lange Akkulaufzeit für mobile Computergeräte . Ein weiterer Grund dafür, dass der Stromverbrauch in SoCs minimiert werden muss. Auf diesen Geräten werden häufig Multimedia-Anwendungen ausgeführt, darunter Videospiele , Video-Streaming und Bildverarbeitung . All dies hat in den letzten Jahren an Rechenkomplexität zugenommen, mit den Anforderungen und Erwartungen der Benutzer an qualitativ hochwertigere Multimedia- Inhalte . Die Berechnung ist anspruchsvoller, da sich die Erwartungen in Richtung 3D-Video mit hoher Auflösung und mehreren Standards bewegen. Daher müssen SoCs, die Multimedia-Aufgaben ausführen, eine rechenfähige Plattform sein und gleichzeitig einen geringen Stromverbrauch aufweisen, um mit einem normalen mobilen Akku betrieben zu werden.

Leistung pro Watt

SoCs sind optimiert, um die Energieeffizienz bei der Leistung pro Watt zu maximieren: Maximieren Sie die Leistung des SoC bei einem Budget für den Stromverbrauch. Viele Anwendungen wie Edge-Computing , verteilte Verarbeitung und Umgebungsintelligenz erfordern ein bestimmtes Maß an Rechenleistung , aber die Leistung ist in den meisten SoC-Umgebungen begrenzt. Die ARM-Architektur bietet in eingebetteten Systemen eine höhere Leistung pro Watt als x86. Daher wird sie für die meisten SoC-Anwendungen, die einen eingebetteten Prozessor erfordern, gegenüber x86 bevorzugt .

Abwärme

SoC - Designs sind so optimiert , minimieren Abwärme Ausgang auf dem Chip. Wie bei anderen integrierten Schaltkreisen ist die aufgrund der hohen Leistungsdichte erzeugte Wärme der Engpass für die weitere Miniaturisierung von Bauteilen. Die Leistungsdichten von integrierten Hochgeschwindigkeitsschaltungen, insbesondere von Mikroprozessoren und einschließlich SoCs, sind sehr ungleichmäßig geworden. Zu viel Abwärme kann die Stromkreise beschädigen und die Zuverlässigkeit des Stromkreises im Laufe der Zeit beeinträchtigen . Hohe Temperaturen und thermische Beanspruchung wirken sich negativ auf die Zuverlässigkeit, die Spannungsmigration , die verringerte mittlere Zeit zwischen Ausfällen , die Elektromigration , das Drahtbonden , die Metastabilität und andere Leistungseinbußen des SoC im Laufe der Zeit aus.

Insbesondere befinden sich die meisten SoCs in einem kleinen physikalischen Bereich oder Volumen, und daher werden die Auswirkungen der Abwärme verstärkt, da nur wenig Raum für die Diffusion aus dem System vorhanden ist. Aufgrund der hohen Transistoranzahl bei modernen Geräten aufgrund des Moore'schen Gesetzes ist ein Layout mit ausreichendem Durchsatz und hoher Transistordichte häufig durch Herstellungsprozesse physikalisch realisierbar , würde jedoch zu unannehmbar hohen Wärmemengen im Volumen der Schaltung führen.

Diese thermischen Effekte zwingen SoC und andere Chipdesigner dazu, konservative Designränder anzuwenden , wodurch weniger leistungsfähige Geräte entstehen, um das Risiko eines katastrophalen Ausfalls zu verringern . Aufgrund der erhöhten Transistordichten, wenn die Längenskalen kleiner werden, erzeugt jede Prozessgeneration mehr Wärmeabgabe als die letzte. Um dieses Problem zu verschärfen, sind SoC-Architekturen normalerweise heterogen und erzeugen räumlich inhomogene Wärmeströme , die durch eine gleichmäßige passive Kühlung nicht effektiv gemindert werden können .

Durchsatz

SoCs werden optimiert , um zu maximieren Rechen- und Kommunikations Durchsatz .

Latenz

SoCs sind optimiert, um die Latenz für einige oder alle ihrer Funktionen zu minimieren . Dies kann erreicht werden, indem Elemente mit der richtigen Nähe und Lokalität zueinander angeordnet werden, um die Verbindungsverzögerungen zu minimieren und die Geschwindigkeit zu maximieren, mit der Daten zwischen Modulen, Funktionseinheiten und Speichern übertragen werden. Im Allgemeinen ist die Optimierung zur Minimierung der Latenz ein NP-vollständiges Problem, das dem booleschen Erfüllbarkeitsproblem entspricht .

Bei Aufgaben, die auf Prozessorkernen ausgeführt werden, können Latenz und Durchsatz durch die Aufgabenplanung verbessert werden . Einige Aufgaben werden jedoch in anwendungsspezifischen Hardwareeinheiten ausgeführt, und selbst die Aufgabenplanung reicht möglicherweise nicht aus, um alle softwarebasierten Aufgaben zu optimieren, um Zeit- und Durchsatzbeschränkungen zu erfüllen.

Methoden

Systeme auf dem Chip werden mit Standardtechniken zur Überprüfung und Validierung der Hardware modelliert. Es werden jedoch zusätzliche Techniken verwendet, um SoC-Entwurfsalternativen zu modellieren und zu optimieren, um das System hinsichtlich der Entscheidungsanalyse mit mehreren Kriterien für die oben genannten Optimierungsziele optimal zu machen .

Aufgabenplanung

Die Aufgabenplanung ist eine wichtige Aktivität in jedem Computersystem mit mehreren Prozessen oder Threads, die sich einen einzelnen Prozessorkern teilen. Es ist wichtig, die § Latenz zu verringern und den § Durchsatz für eingebettete Software zu erhöhen, die auf den § Prozessorkernen eines SoC ausgeführt wird . Nicht jede wichtige Computeraktivität in einem SoC wird in Software ausgeführt, die auf On-Chip-Prozessoren ausgeführt wird. Durch die Planung kann jedoch die Leistung softwarebasierter Aufgaben und anderer Aufgaben mit gemeinsam genutzten Ressourcen drastisch verbessert werden .

SoCs planen Aufgaben häufig gemäß der Netzwerkplanung und zufälligen Planungsalgorithmen .

Pipelining

Hardware- und Softwareaufgaben werden häufig im Prozessordesign festgelegt . Pipelining ist ein wichtiges Prinzip für die Beschleunigung in der Computerarchitektur . Sie werden häufig in GPUs ( Grafik-Pipeline ) und RISC-Prozessoren (Weiterentwicklungen der klassischen RISC-Pipeline ) verwendet, aber auch für anwendungsspezifische Aufgaben wie die digitale Signalverarbeitung und Multimedia-Manipulationen im Kontext von SoCs.

Probabilistische Modellierung

SoCs werden häufig anhand von Wahrscheinlichkeitsmodellen , Warteschlangentheorie, Warteschlangennetzwerken und Markov-Ketten analysiert . Zum Beispiel erlaubt das Little'sche Gesetz, SoC-Zustände und NoC-Puffer als Ankunftsprozesse zu modellieren und durch Poisson-Zufallsvariablen und Poisson-Prozesse zu analysieren .

Markov-Ketten

SoCs werden häufig mit Markov-Ketten modelliert , sowohl zeitdiskrete als auch kontinuierliche Zeitvarianten. Die Markov-Kettenmodellierung ermöglicht eine asymptotische Analyse der stationären Verteilung von Leistung, Wärme, Latenz und anderen Faktoren des SoC , um Entwurfsentscheidungen für den allgemeinen Fall zu optimieren.

Herstellung

SoC-Chips werden typischerweise unter Verwendung der Metalloxid-Halbleiter (MOS) -Technologie hergestellt. Die oben beschriebenen Netzlisten werden als Grundlage für den physischen Entwurfsfluss ( Ort und Route ) verwendet, um die Absicht der Designer in den Entwurf des SoC umzuwandeln. Während dieses Konvertierungsprozesses wird das Design mit statischen Timing-Modellen, Simulationen und anderen Tools analysiert, um sicherzustellen, dass es die angegebenen Betriebsparameter wie Frequenz, Stromverbrauch und Verlustleistung, Funktionsintegrität (wie im Registerübertragungspegelcode beschrieben) und Elektrik erfüllt Integrität.

Wenn alle bekannten Fehler behoben und diese erneut überprüft wurden und alle physischen Entwurfsprüfungen durchgeführt wurden, werden die physischen Entwurfsdateien, die jede Schicht des Chips beschreiben, an den Maskenladen der Gießerei gesendet, wo ein vollständiger Satz lithografischer Glasmasken geätzt wird . Diese werden an eine Waferfabrik geschickt, um die SoC-Würfel vor dem Verpacken und Testen herzustellen.

SoCs können mit verschiedenen Technologien hergestellt werden, darunter:

ASICs verbrauchen weniger Strom und sind schneller als FPGAs, können jedoch nicht neu programmiert werden und sind teuer in der Herstellung. FPGA-Designs eignen sich besser für Designs mit geringerem Volumen, aber nach genügend Produktionseinheiten reduzieren ASICs die Gesamtbetriebskosten.

SoC-Designs verbrauchen weniger Strom und sind kostengünstiger und zuverlässiger als die von ihnen ersetzten Multi-Chip-Systeme. Mit weniger Paketen im System werden auch die Montagekosten reduziert.

Wie bei den meisten VLSI-Designs ( Very-Large-Scale-Integration ) sind die Gesamtkosten für einen großen Chip jedoch höher als für dieselbe Funktionalität, die auf mehrere kleinere Chips verteilt ist, da die Ausbeuten geringer sind und die einmaligen Engineeringkosten höher sind .

Wenn es nicht möglich ist, einen SoC für eine bestimmte Anwendung zu konstruieren, ist eine Alternative ein System in Package (SiP), das eine Anzahl von Chips in einem einzigen Package umfasst . Bei der Herstellung in großen Mengen ist SoC kostengünstiger als SiP, da seine Verpackung einfacher ist. Ein weiterer Grund, warum SiP bevorzugt werden kann, ist, dass die Abwärme in einem SoC für einen bestimmten Zweck zu hoch sein kann, weil Funktionskomponenten zu nahe beieinander liegen und in einem SiP Wärme von verschiedenen Funktionsmodulen besser abgeleitet wird, da sie physikalisch weiter voneinander entfernt sind.

Benchmarks

SoC- Forschung und -Entwicklung vergleicht oft viele Optionen. Benchmarks wie COSMIC werden entwickelt, um solche Bewertungen zu unterstützen.

Siehe auch

Anmerkungen

Verweise

Weiterführende Literatur

Externe Links