Der Weg zur Embedded World 2021: Teil 5

Anmerkung der Redaktion: In Episode 1 dieser Serie aus fünf Beiträgen im Vorfeld der Embedded World 2021, wurde ein Überblick darüber gegeben, was die Embedded World ist. In Episode 2 hat Randall seine Kenntnisse der Programmiersprache C aufgefrischt. Episode 3 konzentrierte sich darauf, wie die Verwendung der objektorientierten Programmierung Komplexität reduzieren kann. Episode 4 zeigte, dass das grundlegende Maß für gutes Design seine Fähigkeit ist, bei veränderten Anforderungen rekonfiguriert werden zu können, ohne die Bausteine neu implementieren zu müssen. In diesem letzten Beitrag, Episode 5, wird der ständig wachsende Speicherbedarf von Betriebssystemen hinterfragt und die Systemdekomposition vor Randalls Keynote-Präsentation auf der Embedded World 2021 angesprochen.

In meinem letzten Beitrag habe ich David Parnas' Ansicht vorgestellt, dass ein System Informationen hinter seiner Schnittstelle verbergen sollte und dass Systeme in Module zerlegt werden sollten, die sich leicht ändern lassen. Mit Juval Löwy, der das Buch „Righting Software“ geschrieben hat, habe ich auch einen modernen Verfechter dieses Ansatzes erwähnt.

Dieser Ansatz unterscheidet sich von der funktionalen Dekomposition, die heute wohl der populärere Ansatz ist. Dennoch gibt es gute Belege dafür, dass der Ansatz von Parnas besser ist. Einer dieser Gründe ist, dass ein System, das auf Veränderung ausgelegt ist, ein System ist, das leichter zu verstehen ist. Es ist einfacher, ein solches System zu „ergründen“, und es ist einfacher, solche Systeme in neuen Implementierungen neu zusammenzusetzen. Dies ist ein Schlüsselkonzept zur Steigerung der Wiederverwendung, da es Nicht-Experten den Zugang zum Fachwissen anderer ermöglicht. Es ist auch die Möglichkeit, den Markt für Embedded-Ingenieure zu erweitern, indem man anderen die Möglichkeit gibt, das zu machen, was sie sich vorstellen. Das grundlegende Maß für ein gutes Design ist also seine Fähigkeit, bei veränderten Anforderungen neu konfiguriert zu werden, ohne die Bausteine neu implementieren zu müssen. Auf diese Weise sind Variationen von Kernanwendungsfällen einfach Interaktionen zwischen Bausteinen, die für bestimmte Anwendungsfälle und spezifische Anforderungen entwickelt wurden.

Aber leider birgt dieser Ansatz auch Risiken und Gefahren in sich. Dazu gehören Ineffizienz und Verschwendung. Wenn Systeme wachsen, werden sie natürlich unhandlich. Ich lade Sie ein, diesen interessanten Blog von jemandem namens Nikita zu lesen. Ich freue mich, berichten zu können, dass er auch in der Woche 53 des Jahres 2020 noch online verfügbar ist. Nikita sagt:

„Ein Android-System ohne Apps beansprucht fast 6 GB. Denken Sie nur eine Sekunde lang darüber nach, wie obszön RIESIG diese Zahl ist. Was ist da drin, HD-Filme? Ich schätze, es ist im Grunde nur Code: Kernel, Treiber. Ein paar Texte und Ressourcen auch, sicher, aber die können nicht groß sein. Wie viele Treiber braucht man wohl für ein Telefon?

Windows 95 war 30 MB groß. Heute haben wir Webseiten, die größer sind! Windows 10 ist 4 GB groß, also 133 mal so groß. Aber ist es auch 133 mal besser? Ich meine, funktionell sind sie im Prinzip gleich. Ja, wir haben Cortana, aber ich bezweifle, dass es 3970 MB benötigt. Aber was auch immer Windows 10 ist, ist Android wirklich 150% davon?

Der im November 2020 angekündigte M1-Chip von Apple enthält 16 Milliarden Transistoren. Dies ist nach heutigen Maßstäben enorm. Auch für Embedded-Designer gibt es einige große FPGAs. Während allgemeine Computer-Hardware und -Programme unhandlich geworden sind, geschieht das Gleiche im Embedded-Bereich.

Die digitale Signalverarbeitung wurde bereits in den 1960er Jahren entwickelt und zur Verarbeitung von Radarsignalen eingesetzt. Das war vor dem Aufkommen des Mikroprozessors und der programmierbaren Logik. Was seitdem passiert ist, ist, dass wir die Verwendung von Funktionen übernommen haben, die jemand anderes entwickelt hat - IP-Blöcke vom FPGA-Anbieter und seinen wertsteigernden Wiederverkäufern und Software-Bibliotheken aller Art. Es hat uns produktiver gemacht, aber es hat auch unsere Lösungen größer gemacht. Das Problem ist, dass Ihre Anwendung möglicherweise nicht alle der enthaltenen Funktionen benötigt und Sie wahrscheinlich nicht alle enthaltenen Funktionen kennen (z. B.: eingebaute Testsuiten, die der Lieferant in den von Ihnen verwendeten IC eingebettet hat). Es ist einfacher geworden, Funktionen aus der Konserve zu bündeln und in das Endprodukt zu integrieren. Es lohnt sich nicht, eine schlankere Lösung zu finden, weil es dann länger dauert, eine Lösung zu implementieren.

Ich habe in meinem letzten Beitrag Löwys Bemerkung erwähnt, dass ein Elefant und eine Maus im Grunde gleich aufgebaut sind. Das erinnert mich daran, dass meine DNA den größten Teil der Genealogie einer Banane (90%) und einer Fruchtfliege (95%) trägt. Obwohl ich diese Formeln bei mir trage, sind sie mir nicht bewusst. Ich denke, dass dies auch bei eingebetteten Systemen der Fall ist. Wir schleppen mit der leicht verfügbaren Funktionalität noch das zusätzliche Gepäck mit. Wir entwickeln unsere eingebetteten Systeme mit Frameworks, die aussehen, als kämen sie aus IT-Abteilungen (z. B.: Harmony von Microchip, xDAIS von Texas Instruments, MCUXpresso von NXP und mehr).

Ich habe vor kurzem einen Artikel von Kevin Morris im EE Journal gelesen, in dem es heißt, dass:

„Weder Xilinx noch Altera/Intel haben die meisten FPGA-Bausteine ausgeliefert, obwohl sie in den letzten Jahrzehnten zusammen einen FPGA-Marktanteil von rund 80% hatten. Diese Auszeichnung geht an Lattice Semiconductor, und das nicht zu knapp. Der Grund dafür ist natürlich, dass sich Lattice in den letzten Jahren auf das mittlere und untere Segment des Marktes konzentriert hat, während die bekannteren Firmen für programmierbare Logik um die Vorherrschaft bei den größten und teuersten FPGAs, FPGA-SoCs und ähnlichen Komponenten gekämpft haben.

Dieser strategische Schwerpunkt auf kostengünstigere, höhervolumige Sockel hat Lattice geholfen, Milliarden von FPGAs in eine Vielzahl von Systemen in zahlreichen Marktsegmenten zu liefern. Und da die Möglichkeiten der FPGA-Technologie zugenommen haben, hat Lattice hinter den beiden Großen nachgezogen und Technologie, die noch vor ein paar Jahren als High-End galt, in viel kostengünstigere Anwendungen gebracht. Und dann haben sie die Technologie in neue Richtungen mit vorgefertigten Lösungen geführt, die die Hürde für Ingenieurteams ohne große FPGA-Expertise deutlich senken, um die Vorteile der Technologie zu nutzen“.

Geben Sie „Mikrocontroller“ in das Suchfeld von DigiKey ein und Sie werden sehen, dass über 87.000 einzigartige Komponenten aufgelistet sind. Geben Sie „FPGA“ ein und Sie werden über 25.000 Komponenten finden. Betrachten Sie nun Abbildung 1. Sie zeigt, welche Arten von Mikrocontrollern von Kunden gekauft werden. Beachten Sie, dass die größte Chance darin besteht, den 8-Bit-Markt im unteren Bereich zu bedienen. In der heutigen Zeit von ARM und RISC-V mag dies überraschend sein, aber es passt zum Artikel über Lattice.

Abbildung 1: Beliebtheit von Mikrocontrollertypen

Unsere Herausforderung als Embedded-Ingenieure besteht darin, der Versuchung zu widerstehen, die Funktionalität unserer Geräte aufzublähen. Actel, jetzt Microsemi, eine Abteilung von Microchip, hatte ein Werkzeug, das „Gate Gobbler“ genannt wurde. Soweit ich weiß, existiert es noch. Dieses Werkzeug würde überflüssige Logik eliminieren. Möglicherweise müssen wir solche Tools wieder aufleben lassen, um unseren Benutzern die Möglichkeit zu geben, nicht benötigte Funktionen zu entfernen.

In meinem Vortrag auf der Embedded World werde ich ein Beispiel für die Systemdekomposition mit Parnas' Ansatz geben und argumentieren, dass der Markt für Embedded-Ingenieure breit gefächert ist und wächst. Ich werde die Perspektive der Reduzierung der Komplexität erklären, bei der die Funktionalität vorhandener Technologie genutzt wird, und von der sowohl Anfänger als auch Experten profitieren. Ich behaupte, dass diese Möglichkeit eine fantastische Zukunft eröffnen kann. Ich werde auch erklären, was die Firmen für programmierbare Logik getan haben, um ihren Märkten zu schaden und was getan werden muss, um diesen Schaden zu korrigieren.

Für Unternehmen ist es wichtig, ihre Produkte für ein möglichst großes Publikum nutzbar zu machen. Zu Beginn meiner Karriere gab es bei einem US-Automobilunternehmen einen massiven Stellenabbau. Ich erinnere mich, einen Artikel gelesen zu haben, in dem erklärt wurde, dass bei der Anzahl der entlassenen Mitarbeiter mit großer Wahrscheinlichkeit mindestens einige Edisons, Fords und ein oder zwei DaVincis entlassen wurden. Es sind die großen, ungelernten Märkte, in denen der nächste oder die nächste DaVinci seine/ihre Karriere beginnen wird. Wir brauchen diese Menschen, um unser Know-how erfolgreich zu nutzen.

Über den Autor

Image of Randy Restle

Randall Restle, Vice President of Applications Engineering bei Digi-Key Electronics, ist verantwortlich für die Auswahl, den Aufbau und die Leitung eines Teams von qualifizierten Anwendungstechnikern, Technikern und Führungskräften, um die technische Strategie von Digi-Key zu koordinieren, Kunden bei der Auswahl und Verwendung von Produkten modernster Technologie zu unterstützen. Er kam 2011 zu Digi-Key, nachdem er 35 Jahre lang im Ingenieurwesen tätig war und digitale und analoge Schaltungen, Leiterplatten und Embedded-Software entwickelt hatte.  Randall Restle hält BSEE-, MS- und MBA-Abschlüsse von der University of Cincinnati. Er ist zudem ein langjähriges Mitglied des IEEE, war Registered Professional Engineer im Bundesstaat Ohio, ein Certified Project Management Professional am Project Management Institute und hält als Erfinder mehrere Patente.

More posts by Randall Restle
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum