SPF: Mips bringt Multi-Threading in die Embedded-Welt

Ein paar Register fürs Threading mehr – und schon kann man 60 Prozent höhere Performance erzielen.

In Pocket speichern vorlesen Druckansicht 11 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Andreas Stiller

Mips hat auf dem Spring Processor Forum die Multithreading-Technik der im Februar vorgestellten MIPS32-34K-Familie genauer spezifiziert und erste Benchmark-Ergebnisse im Vergleich zum Single-Thread-Kollegen 24K veröffentlicht. Der 34K arbeitet mit einem recht ungewöhnlichem Multi-Threading – das zeigt sich schon an der Zahl der Threads: Insgesamt fünf kommen zum Einsatz.

Die Threads sind zusammengefasst in zwei Virtuelle Processing Elements (VPEs), die Multi-Threading und Virtualisierung miteinander verbinden. Jedes VPE – eins mit zwei und das andere mit drei Threads – kann so bei Bedarf ein anderes Betriebssystem fahren. Die Threads haben aber vor allem die Aufgabe, Wartezeiten in der Pipeline, die berüchtigten Pipeline Stalls, zu überbrücken. Um in solchen Fällen möglichst schnelle Thread-Wechsel hinzubekommen, hat Mips den getrennten Bereich der Threads – durchaus ähnlich wie Intel beim Hyper-Threading – so klein, wie möglich, gemacht: Sie teilen sich erst nach dem Holen der Instruktionen auf, teilen sich also unter anderem auch die Sprungvorhersage. Anders als bei Hyper-Threading gibt es jedoch zahlreiche Optionen für die Thread-Umschaltung, die von dem programmierbaren Policy Manager verwaltet wird. Dieser kann pro Takt umschalten, Prioritäten berücksichtigen und dynamisch anpassen, Round-Robin oder gewichtetes Round-Robin fahren und so weiter. Programmiert wird er über den erweiterten MIPS-MT-applikationsspezifischen Befehlssatz, entsprechende Bibliotheken für den "Long Term Director" liefert Mips mit.

Brauchbare Benchmarks für Multi-Threading im Embedded-Bereich gibt es allerdings derzeit noch nicht, die EEMBC arbeitet noch dran. Solange muss MIPS notgedrungen irgendwelche Standard-Benchmarks parallel fahren, etwa mehrmals den gleichen Dhrystone anstarten, der in der Embedded Welt immer noch unverwüstlich ist. Während der Single-threaded 24K mit den nacheinander ausgeführten EEMC-Benchmarks OSPF und PKflow auf 281 Takte kommt, reduziert der 34K im Parallelbetrieb die Ausführungszeit auf 171 Takte, das entspricht einer Steigerung von immerhin etwa 60 Prozent. Mit 0,59 mW/MHz ist der Prozessor zudem recht genügsam. Fünf Firmen haben den Core schon in Lizenz genommen, darunter PMC-Sierra, iVivity und Mobileye.

Zum Spring Processor Forum siehe auch: (as)