Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
Special|Embedded Computing 24 www markttechnik de Nr 37 2020 NRE-Investitionen von Spezialisten profitieren und die jahrelange Entwicklungszeit vermeiden können die eine solche Software erfordern würde wenn Benutzer diese von Grund auf neu erstellen müssten Mit Caffe PyTorch und Googles Tensorflow können komplexe Modelle künstlicher Intelligenz KI erstellt trainiert und optimiert werden Diese lassen sich dann problemlos in eingebettete VerarbeitungsPipelines integrieren OpenCV ist eine weit verbreitete Bibliothek für die Bildverarbeitung die problemlos in Echtzeitanwendungen integriert werden kann Mit dem Aufstieg des maschinellen Lernens wird heutzutage zunehmend auf ein Verwendungsmodell zurückgegriffen bei dem Bilddaten mit OpenCV vorverarbeitet werden bevor sie an ein mit Caffe oder Tensorflow erstelltes KI-Modell übergeben werden Eigener Code wird dabei hauptsächlich verwendet um die Echtzeitreaktion auf vom Modell erkannte Ereignisse bereitzustellen Entwickler haben jetzt Zugriff auf Cloudorientierte Softwaremodule und -Tools die sich einfach in gängige Netzwerk-Stacks und RTOS-Implementierungen integrieren lassen Dadurch können Embedded-Systeme unterschiedlicher Komplexität in das IoT integriert werden Die IoT Connect Platform von Avnet bietet beispielsweise eine Cloudbasierte Verarbeitung für komplexe Aufgaben wie KI Da das System sowohl von Cloudals auch von Embedded-Gerätesoftwarediensten definiert wird haben Cloud-Anbieter wie Amazon Web Services und Microsoft Azure jetzt eine Reihe von Angeboten die beides zusammenbringen und allesamt die Modularität der von ihnen verwendeten Softwarekomponenten ausnutzen Die Modularisierung verändert auch die Fähigkeiten die Entwickler von Embedded-Software brauchen Der Schwerpunkt der Aufgaben verlagert sich von der Codeentwicklung hin zur Fähigkeit auf der Grundlage bestehender Module flexible Architekturen zu erstellen die eine einfache Programmierung mit eigenem Code und eine einfache Laufzeitkonfiguration für neue bereitzustellende Dienste ermöglichen Durch die Ausnutzung dieser Modularität können OEMs und Systemintegratoren einfacher mit den Anforderungen von Kunden Schritt halten was sonst mit herkömmlichen Mitteln nur schwer vorstellbar wäre mk n Heterogene Multicore-Prozessoren Einheitlich für mehr Vielfalt Moderne Systemon-Chip-Bausteine verbinden unterschiedliche Cores von der CPU über die GPU bis hin zur TPU Was das für die Entwicklung Fehlersuche und das Testen bedeutet erklärt Jens Braunes Product Marketing Manager bei PLS Programmierbare Logik & Systeme Markt&Technik Sind eigentlich unterschiedliche Reifegrade der Cores zu beobachten? Jens Braunes Das lässt sich pauschal nicht so einfach beantworten Fakt ist dass die Zahl heterogener Multicore-SoCs die StandardCore-Architekturen mit Spezial-Cores kombinieren gerade bei Embedded-Systemen in den letzten Jahren deutlich zugenommen hat Dass bei der hohen Innovationsgeschwindigkeit mitunter auch Technologien die schon eine ganze Weile im Einsatz sind mit technologischen Neuerungen kombiniert werden liegt in der Natur der Sache Nehmen wir als Beispiel die Aurix-Familie von Infineon Hier wurde zum einen ein auf der TriCore-Architektur basierendes MulticoreSystem geschaffen und zum anderen durch die GTM Generic Timer Module von Bosch die Leistungsfähigkeit im Bereich komplexer Timer und Signalgenerierung enorm gesteigert Auch die nächste Generation des Aurix verspricht erneut einen Innovationsschub Denn dann werden mit einem zusätzlichen ARC-Core von Synopsis auch KI-Anwendungen unterstützt Erhöhen die unterschiedlichen Architekturen nicht zu stark die Komplexität? Die Kombination von unterschiedlichen CoreArchitekturen an sich ist eigentlich unkritisch Einzeln für sich genommen sind die Cores ja funktional auch gut getestet Aber ein ganz wichtiger Aspekt bei diesen heterogenen Multicore-Systemen den man nicht unterschätzen darf ist der mitunter immense Aufwand der Systemintegration Mehrere Cortex-Cores aus dem ARM-Baukasten auf einem SoC zu vereinen ist in der Regel noch unproblematisch Sollen aber zusätzliche für bestimmte Aufgaben optimierte ARMfremde Cores integriert werden kann es für die Entwickler sehr schnell richtig anspruchsvoll werden Im Normalfall bedarf es etlicher spezifischer Anpassungen durch geeignete Wrapper um sie inklusive aller Kommunikationspfade und einem zusätzlichen Power Management in ein Gesamtsystem zu integrieren Und auf dem Weg dorthin lauert so manche Tücke Taktdomänen müssen synchronisiert werden unterschiedliche Busse müssen miteinander kommunizieren können etc etc Wie sieht es mit dem Determinismus aus wenn unterschiedliche Cores unterschiedliche Wach Schlaf-Zustände gleichzeitig haben? Wirklichen Determinismus gibt es in Embedded-Systemen eigentlich gar nicht Durch Sensoren Aktoren und die Kommunikation nach außen ist das System ja immer auch Teil der realen Welt Abgesehen davon Im System selbst wo Cores zum Zwecke des Energiesparens dynamisch herunter getaktet und gänzlich schlafen gelegt werden gibt es immer geeignete Signalisierungen und Synchronisationsmechanismen Damit lässt sich der gewünschte Determinismus wieder herstellen Im Grunde sind hier aber auch die Entwickler gefragt denn wie gut die Synchronisierung tatsächlich funktioniert hängt letztendlich ganz stark von der Software-Architektur ab Der Schlüssel liegt in der Partitionierung und Modularisierung Entscheidend ist dass Funktionen die auf unterschiedlichen Cores ausgeführt werden möglichst unabhängig voneinander sind also möglichst wenig miteinander kommunizieren müssen Es macht keinen Sinn einen Core schlafen zu legen um ihn