So lässt sich durch die Wahl der richtigen, ECC-geeigneten Prozessoren und Speicher die Systemsicherheit im Embedded-Bereich deutlich steigern.
Embedded System: Nicht nur auf die Auswahl eines passenden Prozessors oder Speicherbausteins kommt es an. Unsauberer, schlecht strukturierter Code kann eine IoT-Anwendung enorm verlangsamen - teilweise sogar um den Faktor 30.
(Bild: Microsys)
Mit hochintegrierten und leistungsfähigen System on Chip Lösungen wandert zunehmend Intelligenz bis auf die Sensorebene von komplexen embedded Anwendungen. Wie Zuverlässigkeit im Design auch bei kleinen Systemstrukturen zu erreichen ist, gepaart mit hoher Performance und geringer Leistungsaufnahme, ist nach wie vor eine wichtige Kompetenz modernen Systemengineerings.
Im nachfolgenden Artikel werden gleich schnell getaktete ARM-, PowerPC- und X86- Plattformen bezüglich Gesamtperformance und Systemsicherheit (Safety) verglichen. Anhand zweier C-Code Anwendungsbeispiele, die in erster Betrachtung fast identisch aufgebaut sind, wird erklärt, wie mit durchdachter Programmierung Leistungssteigerungen bis zu Faktor 30 möglich sind.
Im zweiten Teil des Beitrags wird die Wichtigkeit von ECC-Memory (Error Correcting Code) und Prozessorunterstützung durch die immer kleiner werdenden Chip-Strukturen erläutert. Darüber hinaus gibt es neue Erkenntnisse zum Thema NAND-Flash-Speicher. Hier werden Methoden wie z.B. das Scrubbing bei NAND Flashes erklärt.
Es gibt immer wieder Streit darüber, welches der performantere und bessere Prozessor für eine gegebene Anwendung ist. Meist stehen hier X86, PowerPC und ARM in ihren unterschiedlichen Ausprägungen gegeneinander.
Eins vorweg: Gleich schnell getaktete Prozessoren sind auch in etwa gleich schnell, mit wenigen Prozentpunkten Abweichung. Da ein Großteil der lokalen Daten im CPU-Cache verarbeitet werden, sind hier kaum Unterschiede sichtbar. Sobald es aber ins externe RAM geht, kommen Faktoren wie Busbreite, Speichertyp und Cache-RAM-Verbindung mit ins Spiel.
Gute und schlechte Programmierung für Speicherzugriffe
Beispielfunktionen: Auch wenn C-Source-Code-Beispiel 1 (links) und Beispiel 2 (rechts) nahezu identisch sind, liefern sie bei der Ausführung höchst unterschiedliche Resultate.
(Bild: Microsys)
Doch zunächst zu dem C-Code Beispiel, mit dem die Messung durchgeführt wurden. Weshalb gibt es „gute“ und „schlechte“ Programmierung?
Häufig wird einfach darauf los programmiert, auf die pure Umsetzung einer Funktion geachtet und nicht die Auswirkungen der Programmierverfahren auf die Systemleistung miteinbezogen. Mit der Berücksichtigung der Abläufe, wie der Prozessor mit dem Cache und RAM zusammenarbeitet, können beispielsweise speicherintensive Funktionen um Faktoren schneller ablaufen.
Als Beispiel werden hier zwei fast gleiche Funktionen in C verglichen (siehe Abbildung). Es soll hierbei nicht auf Funktion, ANSI Konformität oder Schönheit ankommen, sondern es wird nur der Algorithmus beschrieben.
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://support.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.