Skip to main content

Multicore-Codierungsstandards zielen auf eine einfachere Programmierung ab

Die Multicore Association erstellt Spezifikationen für ein Programmiermodell, das die Komplexität beim Schreiben von Software für Multicore-Chips in Smartphones, Tablets und anderen eingebetteten Systemen reduziert.

Die Vereinigung erstellt eine zusammenhängende Menge von Basis-APIs (Anwendungsprogrammierschnittstellen), um Kommunikation, Ressourcenzuteilung und Virtualisierung übergreifende Kerne auf dem gleichen oder verschiedenen Chips zu standardisieren, sagte Markus Levy, der Präsident der Gruppe.

Chiphersteller fügen Chips, Energiequellen, CPUs, Sensoren und Beschleuniger energieeffizient hinzu um die Anwendungsleistung auf Geräten zu steigern. Aber Multicore-Chips stellen auch eine Herausforderung für Programmierer dar, die Anwendungen schreiben müssen, die über mehrere Kerne skalieren und korrekt synchronisieren, um sicherzustellen, dass Berechnungen in einer bestimmten Reihenfolge ausgeführt werden, um die richtige Ausgabe zu erhalten.

Die Low-Level-APIs bieten eine konsistente Multicore-Programmiermodell, von dem Anwendungen auf Chiparchitekturen, Betriebssysteme und spezialisierte Hardware zugeschnitten werden können, sagte Levy. Die Multicore Association hat die MCAPI- (Multicore Communication API) und MRAPI- (Multicore Resource Management API) für Kommunikations- und Ressourcenmanagement abgeschlossen und verfügt über Arbeitsgruppen zur Erstellung neuer Tools und APIs im Zusammenhang mit der Virtualisierung.

"Es gibt viele Nutznießer der Einrichtung dieser APIs. Aber das primäre Ziel für alle Parteien ist es, Portabilität zu etablieren ", sagte Levy. Ein konsistentes Programmiermodell erleichtert die Wiederverwendung der Anwendung über verschiedene Multicore-Plattformen hinweg. Vor diesen APIs verwendeten die meisten Designs proprietäre Mechanismen, die nicht portabel waren, sagte Levy.

Ein Smartphone könnte mit mehreren Prozessorkernen mit verschiedenen Betriebssystemen entwickelt werden, wobei jeder Kern unterschiedliche Funktionen bietet, sagte Colin Walls, ein eingebetteter Softwaretechnologe bei Mentor Graphics, das das Echtzeitbetriebssystem von Nucleus herstellt, das jedes Jahr rund 400 Millionen Handys liefert. MCAPI bietet eine einfache Möglichkeit für die Software auf den zwei Kernen zu kommunizieren, Walls sagte.

In einigen Geräten könnte ein Kern ein Betriebssystem wie Android oder Linux laufen lassen, um einen Großteil der Benutzeroberfläche zu verwalten, die Ausführung von Benutzeranwendungen, Datei- und Datenverwaltung und Kommunikation. Der andere Kern könnte für den Benutzer etwas unsichtbar sein und Telefonaktivitäten auf niedriger Ebene wie das Einrichten und Pflegen einer Mobilfunknetzverbindung und das Behandeln von Anrufen verwalten.

"Durch die Verwendung von MCAPI muss der eingebettete Anwendungscode nicht über die Intercore-Kommunikationsmethode Der Code ist portabel zwischen Betriebssystemen und Chiparchitekturen ", sagte Walls.

MCAPI ermöglicht es Programmierern, Anwendungen für Multicore einmalig zu aktivieren und denselben Code für mehrere Produkte in einer Produktlinie und für die nächste Generation wiederzuverwenden ", erklärt Sven Brehmer, CEO von PolyCore Software, der Entwicklungstools und Runtime-Software für die Multicore- und Multichip-Kommunikation bereitstellt.

MCAPI wird am meisten in der Telekommunikations- und Datenkommunikationsinfrastruktur und in Multimediageräten eingesetzt, sagte Brehmer . Weitere Interessensgebiete sind medizinische Geräte, Hochleistungsrechner sowie militärische und luftfahrttechnische Geräte wie Radar.

Die API ermöglicht die Einrichtung von Domänen für bestimmte Implementierungen, z. B. die Kommunikation zwischen Kernen auf einem bestimmten Chip oder über bestimmte Bereiche in einem Chip-Topologie. Dies gibt Designern eine bessere Kontrolle über das Routing und die Sicherheit ihrer Nachrichten, sagte Levy.

"Ein Aspekt der MCAPI-Infrastruktur beinhaltet die Spezifikation eines Netzwerks von Kommunikationsknoten, wobei ein Knoten ein Prozess, Thread, Instanz eines. Sein kann Betriebssystem, Hardwarebeschleuniger oder Prozessorkern ", sagte Levy.

MCAPI wurde entwickelt, um mit MRAPI zu arbeiten, einer API für Ressourcenmanagement auf Anwendungsebene, die die Energieverwaltung und Virtualisierung auf Multicore-Chips koordiniert. Chips enthalten Funktionen und Funktionen, die sich dynamisch ändern, und auf einigen Multicore-Chips ist es für ein einzelnes Betriebssystem schwierig, alle Ressourcen zu verfolgen und zu steuern, sagte Levy. MRAPI bietet Low-Level-Unterstützung für Ereignisbenachrichtigungen auf Systemebene, z. B. Stromsparzustände, Gerätefehler und Neupartitionierung von Hypervisor.

Linux-basierte Geräte mit symmetrischem Multiprocessing unterstützen beispielsweise keine Einrichtung zum Benachrichtigen von Anwendungen in der Betriebsumgebung oder Ressourcen haben sich verändert, sagte Levy. Um dem Mangel entgegenzuwirken, bietet MRAPI Programmierern Implementierungsmechanismen, um die gemeinsame Nutzung von Ressourcen zu verwalten und auf Änderungen der Ressourcenverfügbarkeit zu reagieren.

"Mit Hilfe von MRAPI können Systementwickler portable Anwendungsprogramme schreiben, die in aktuellen und zukünftigen Generationen von Multicore-Prozessoren skalierbar sind Architekturen, die Anwendungs-, Middleware-, Prozessor- und Systementwicklern zugute kommen ", sagte Levy.

Diese Standardisierung ermöglicht es Chip-Anbietern und Drittanbietern von Tools, das Ressourcenmanagement zu übernehmen, so dass Programmierer sich auf High-Level-Anwendungen konzentrieren können .

Die Organisation entwickelt auch APIs für Benutzer von eingebetteten Virtualisierungsprodukten, die die Interoperabilität von Anwendungen und Middleware in verschiedenen Virtualisierungsumgebungen ermöglichen. Ein größerer Fokus liegt jedoch auf der Entwicklung standardisierter Tools, die die APIs nutzen. Einige Unterstützer der neuen APIs, wie zum Beispiel Mentor, Intel, Freescale und Texas Instruments, hätten alle ihre eigenen Debugging- und Tracing-Tools entwickelt, so Levy.

"Das Nettoergebnis für Tool-Anbieter ist so groß wie sie es tun würden "Alles aus einer Hand zu machen, ist unmöglich. Kein einzelner Anbieter kann alles bieten, was seine Kunden benötigen, und dennoch müssen Kunden in der Lage sein, dieses vielfältige System zu entwickeln und zu verstehen", sagte Levy.

Es gibt andere Multicore-Lösungen Programmiermodelle wie OpenMP und OpenCL, aber sie sind alle so konzipiert, dass sie "synergistisch" statt wettbewerbsfähig sind, sagte Polycores Brehmer. Die OpenMP-API ist zum Schreiben paralleler Anwendungen auf Maschinenebene konzipiert, während OpenCL ein Programmierframework für die parallele Ausführung von Tasks über Multicore-Prozessoren einschließlich CPUs und Grafikprozessoren ist.

Zu ​​den Mitgliedern der Multicore-Association gehören auch IBM, Samsung und Advanced Micro Devices.