Wie gehen JTAG, Eclipse und Nexus mit Multicore-Hardware um?

Embedded-Systeme nutzen immer häufiger Multicore-Designs. Systems-on-a-Chip (SoCs) enthalten meist einen oder mehrere Prozessorkerne in homogenen und heterogenen Kombinationen. FPGA-Designs können über eine praktisch unbegrenzte Anzahl und Vielfalt von Kernen verfügen...

Embedded-Systeme nutzen immer häufiger Multicore-Designs. Systems-on-a-Chip (SoCs) enthalten meist einen oder mehrere Prozessorkerne in homogenen und heterogenen Kombinationen. FPGA-Designs können über eine praktisch unbegrenzte Anzahl und Vielfalt von Kernen verfügen. Dieser Artikel beschreibt, welche Anforderungen Multicore-Systementwickler an Debug-Werkzeuge stellen, und bewertet einige Alternativen wie JTAG, Eclipse, Nexus und IEEE 1149.1.

Hardware-Entwickler haben es im Vergleich zu Multicore-Software-Designern relativ gut. Mit dem Auftauchen von Multicore besteht für sie die reelle Chance, dass sie die Performance eines Prozessors innerhalb eines Arbeitstages verdoppeln können, indem sie bestehende IP-Blöcke nehmen, diese anpassen, reproduzieren und Verbindungslogik dafür bereitstellen. Müssen sie die Prozessorleistung vervierfachen, dann wird dieser Vorgang eben entsprechend oft wiederholt.

Das soll jedoch keine Trivialisierung des Hardware-Designs sein. Einer der Gründe für den Schritt in Richtung Multicore ist die Möglichkeit, Prozessorkerne einfacher, mit geringerer Frequenz und niedrigerer Leistungsaufnahme zu betreiben. Die Steigerung der Prozessorleistung entsteht durch die Anzahl der Kerne und nicht durch ihre Frequenz oder den Einsatz von superskalaren Pipelines etc. Sowohl Chip-Designer als auch Software-Entwickler benötigen bessere Werkzeuge, um echtzeitfähige Embedded-Applikationen entwickeln und debuggen zu können. Leider ist es momentan in der Industrie so, dass jeder sein eigenes Süppchen kocht. Es gibt keinen standardisierten Ansatz, mit dem sich die Nebenläufigkeit in einem Design erfassen lässt. Für Multicore-Zielsysteme gibt es weder einen Standard zum Debuggen noch einen für deren Anschluss.

Mentor Graphics arbeitet mit Hardware-, Software- und Firmware-Anbietern sowie Mitgliedern der Multicore Association zusammen, um Industriestandards zu etablieren, die eine einfache Möglichkeit zur gemeinsamen Nutzung von Betriebssystemen und Ressourcen sowie Kommunikation untereinander bieten. Das Unternehmen arbeitet an der Einführung von Debug- und Verbindungsstandards sowie an Mechanismen zur Kommunikation innerhalb der Kerne.