Multicore-Programmierung

SHIM: Beschreibungssprache für Mehrkernprozessoren

22.05.14 | Autor / Redakteur: Franz Graser / Franz Graser

Softwarewerkzeuge für Mehrkern-Prozessoren (hier ein Multicore-Wafer von Intel) sind sehr schwer auf die jeweilige Hardware zu optimieren. Der Beschreibungsstandard SHIM soll hier helfen.
Softwarewerkzeuge für Mehrkern-Prozessoren (hier ein Multicore-Wafer von Intel) sind sehr schwer auf die jeweilige Hardware zu optimieren. Der Beschreibungsstandard SHIM soll hier helfen. (Bild: Intel)

Der XML-basierte Standard SHIM zielt auf eine einheitliche Beschreibung von Prozessoreigenschaften. Dadurch soll es für Tool-Hersteller leichter werden, ihre Werkzeuge auf die Multicore-Chips abzustimmen.

Das englische Wort „Shim“ bedeutet auf Deutsch soviel wie „Abstandsscheibe“ oder „Abstandsstück“. Der SHIM-Standard (Software-Hardware Interface for Multi-Many-Core) hat im übertragenen Sinn eine ganz ähnliche Bedeutung: Er soll die die Lücke zwischen der Multicore-Hardware und den dafür notwendigen Entwickler-Tools verringern.

Aber damit ist das Prinzip nur sehr allgemein erklärt. So ganz einfach fällt es auch Markus Levy, dem Vorsitzenden des Industriekonsortiums The Multicore Association, nicht, das Projekt zu umreißen. „SHIM ist so etwas wie eine Programmierschnittstelle (API), aber es ist eigentlich auch keine Laufzeit-API. Es geht im Kern darum, eines der großen Probleme bei der Entwicklung von Softwarewerkzeugen zu lösen.

Egal ob es sich um Parallelisierungswerkzeuge oder Modellierungs-Tools, Compiler oder Betriebssysteme handelt – es ist sehr aufwendig und teuer, diese Dinge an einen neuen Prozessor anzupassen, ganz besonders wenn es sich um einen Mehrkern- oder Vielkernprozessor mit Hunderten von Cores handelt. Und oft kommt schon ein Jahr später die nächste Generation heraus, wie soll man hier Support liefern? Hier kommt SHIM ins Spiel. Es ist ein XML-Schema, das die Hardware für den Tool-Hersteller beschreibt.“

SHIM soll Compiler und Betriebssysteme füttern

Laut Levy gibt es viele Bereiche, in denen SHIM eingesetzt werden kann. Einer davon ist die Hardware-Modellierung. Mit dem Hardwaremodell eines Mehr- oder Vielkernsystems könne man zum Beispiel einen parallelisierenden Compiler füttern, der die Arbeitspakete den einzelnen Prozessorkerne zuordnet. Ähnliches wäre für Betriebssysteme denkbar. Aber auch zur Performance-Analyse der Chips könne SHIM dienen.

Das XML-Schema von SHIM soll zweierlei Arten von Daten aufnehmen. Der erste Typ sind die Topologie-Daten des Prozessors, also die Informationen darüber, welche Hardware-Elemente sich auf dem Chip befinden. Diese Informationen beschreiben also, wie zum Beispiel die Kerne und die Speicher-Arrays auf der Chipfläche verteilt sind. Die einzelnen Komponenten des Chips werden in Component Sets zusammengefasst. Prozessorkerne gelten in diesem Sets als Master-Komponenten, während dem Speicher der Status einer Slave-Komponente zukommt. Ähnlich einer russischen Matrjoschka-Puppe kann ein solches Komponenten-Set weitere untergeordnete Komponenten-Sets enthalten. In einem 256-Kern-System könnte etwa ohne Weiteres ein Komponenten-Set aus 16 Komponenten-Sets bestehen, die wiederum 16 Kerne enthalten.

Angesichts der Komplexität moderner Prozessoren würde die manuelle Eingabe der Daten allerdings schnell zu einem Geduldsspiel. Deshalb wird parallel zur Definition des SHIM-Standards ein Werkzeug entwickelt, das diese Datenerfassung vereinfachen soll. Ein Wizard wird es demnach erlauben, Daten wie die Anzahl der Prozessorkerne und der Komponenten-Sets sowie die Größe des On-Chip-Speichers einzugeben. Daraus entsteht dann gewissermaßen das Gerüst der XML-Datei.

Ergänzendes zum Thema
 
Interview: „SHIM füllt die Lücke zwischen der Hardware und den Software-Tools.“
Interview mit Markus Levy

Die zweite Daten-Art, die in SHIM einfließt, sind Informationen zur Performance des Systems. Diese Informationen können von Hand eingegeben werden, aber auch dies werde ein sehr umständlicher Prozess sein, warnt Masaki Gondo, der Chief Technology Officer des japanischen Echtzeitbetriebssystem-Herstellers eSOL und Leiter der SHIM-Arbeitsgruppe der Multicore Association. „Wir werden ein Werkzeug entwickeln, das die topologischen Informationen in SHIM XML verstehen kann. Anhand dieser Informationen kann das Tool eine Benchmark-Software erzeugen, die entweder auf der physikalischen Hardware oder aber auf dem Prozessormodell ausgeführt werden kann.“

Multicore Association enthüllt Spezifikation für einfachere Mehrkern-Programmierung

Systems on a Chip

Multicore Association enthüllt Spezifikation für einfachere Mehrkern-Programmierung

04.03.13 - MTAPI, das Multicore Task Management Application Programming Interface, ist nach eineinhalb Jahren Entwicklungsarbeit verfügbar. Die Spezifikation unterstützt die bessere Verteilung von Tasks auf eingebettete nebenläufige Systeme. lesen

Die so gewonnenen Benchmark-Daten fließen dann in die XML-Datei ein. Es ist geplant, die Werkzeuge als Open-Source-Software zu veröffentlichen. Auf diese Weise sollen sie von Beginn an einer möglichst großen Zahl von Anwendern zugänglich sein.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 42464653 / Embedded Software Entwicklungswerkzeuge)

Embedded Software Engineering Report abonnieren

4 mal jährlich: Die kostenlose Pflichtlektüre für Embedded­-Software- und Systems-Entwickler, von Analyse bis Wartung und Betrieb

* Ich bin mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung und AGB einverstanden.
Spamschutz:
Bitte geben Sie das Ergebnis der Rechenaufgabe (Addition) ein.