VISC: Ein virtueller Single-Core-Prozessor

Ein kleines Startup ist aus seiner geheimen Phase herausgetreten, mit einem neuen Prozessordesign, das x86- und ARM-Code verarbeiten kann und das mehrere Kerne an einem Thread arbeiten lässt.

In Pocket speichern vorlesen Druckansicht 49 Kommentare lesen
Lesezeit: 5 Min.
Von
  • Andreas Stiller
Inhaltsverzeichnis

Erinnerungen an Transmetas Crusoe, der VISC-Processor mit Translation-Technik für x86 und ARM

(Bild: Soft Machines)

VISC – das steht vermutlich für Virtual Instruction Set Computing: So heißt die Technik, die das bislang geheime Startup Soft Machines auf der Linley Processor Conference in Santa Clara vorgestellt hat. Im neuen Microprocessor-Report findet man weitere Details dazu. Die VISC-Technik versucht, mehrere Kerne gemeinsam an einem Thread arbeiten zu lassen, um so Zahl der verarbeiteten Instruktionen pro Takt (IPC) zu erhöhen.

Der Prozessor mappt dabei den Gast-Code mit ARM-32- oder x86-Instruktionen auf einen eigenen VISC-Instruktionssatz und optimiert zur Laufzeit – das Ganze erinnert diesbezüglich an den Crusoe-Chip von Transmeta. Dessen Innenleben war aber ein einziger VLIW-Kern, während VISC derzeit mit vier virtuellen Kernen arbeitet.

Laut Soft Machines soll der Benchmark SPEC2006 beim VC-2-Prototypen bei IPC auf einen sehr guten Wert von 2,1 kommen, gegenüber einem Wert beim nicht weiter spezifizierten Haswell von 1,39, beim Apple A7 von 1,0, ARM A57 von 0,87, ARM A15 von 0,71 und Intel Atom von nur 0,69.

Laut Microprocessor Report, hat bereits ein einziger VISC-Kern mit einem IPC-Wert von 1,3 eine höhere Effizienz als die meisten ARM-Kollegen, der zweite Kern steigert das dann um 50 bis 60 Prozent, der dritte um 20 bis 30 und der vierte dann nur noch um 10 bis 20 Prozent. Mehr Kerne als vier ergeben also nicht mehr viel Sinn. Wichtig ist dabei ferner die Energie-Effizienz, denn Soft Machines schaut vor allem auf den Mobile-Markt. Hier proklamiert die Firma bei "SPEC2006/Watt" eine gleiche Performance bei nur einem Drittel bis einem Viertel der Energieaufnahme.

Bei SPEC2006(vermutlich nur die C/C++-Benchmarks) kann der erste VISC-Prozessor VC2 mit hohen IPC-Werten glänzen.

(Bild: Soft Machines)

Die Vergleich und Messungen sind allerdings mit zahlreichen Fragezeichen zu versehen. So ist IPC alleine recht akademisch und nur in Verbindung mit dem tatsächlichen Takt relevant, den Soft Machines aber nicht mit angegeben hatte. Hier berichten andere Quellen von Ergebnissen mit einem "JPEG and color compression"-Benchmark, bei dem der Prototyp nur mit 350 MHz lief, der Haswell-Celeron 3550M ohne Hyperthreading/AVX2/FMA mit 1 GHz.

Welche SPEC2006-Einzelbenchmarks verwendet wurden, bleibt ebenfalls im Dunkeln, das dürfte nach den Regeln von SPEC so gar nicht veröffentlich werden und müsste eine Rüge nach sich ziehen. Die Vergleichsgrafik zu ARM A15 zeigt 22 Balken, SPECint und SPECfp zusammen haben aber 29 Einzelbenchmarks. Vermutlich hat Soft Machines die in Fortran kodierten Benchmarks weggelassen, das ergibt auch Sinn; es sind aber mehr als 7 Fortran-Benchmarks ...

Verwendet wurde zudem der betagte gcc 4.6, also nicht der effizientere Intel-Compiler. Außerdem lief SPEC2006 hier mit 32 Bit, da mit 64 Bit, wobei 32-Bit-Code zumeist höhere IPC-Werte liefert.

Anderswo veröffentlichte Haswell-IPC-Werte für SPECint_2006 lagen zudem bislang um 1,9. Hier muss man einem kleinen Startup allerdings einiges nachsehen, aber etwas präziser könnten die Werte und Konfigurationsangaben schon sein.

SPEC2006-Ergebnisse vom Apple-Chip A7 haben wir zudem noch nirgends gesehen, sollte sich Soft Machines tatsächlich der Mühe unterzogen haben, die komplizierte Benchmark-Suite unter IOS zum Laufen zu bekommen.

Die Idee, mehrere Kerne an einem Thread arbeiten zu lassen, ist nicht neu, auch Intel und AMD hatten daran gearbeitet.

Intels Speculative Precomputing etwa war eine vom Compiler verwendete Technik, einen Thread spekulativ voranlaufen zu lassen, um die Caches mit den wahrscheinlich benötigten Daten zu füllen. Sie kam zunächst beim Itanium, später dann auch bei den x86-Compilern zum Einsatz. Sie sollte IPC um bis zu zwölf Prozent erhöhen können, in der Praxis hatte sie sich aber nicht bewährt und wurde später fallengelassen und von den Intel-Compilern nicht mehr angeboten.

AMD wollte dem geplanten Bulldozer mit seiner schlappen Single-Thread-Leistung durch Einsatz mehrerer Kerne auf die Sprünge helfen. Das :US-Patent 6574725 dazu wurde bereits 2003 erteilt, aber erst später unter dem Schlagwort inverses Hyper-Threading wahrgenommen und intensiv auf Realworldtech.com diskutiert. Zur Implementierung ist es, soweit bekannt, nie gekommen. AMD hatte bei Einführung des Bulldozer-Prozessor die irrige Hoffnung, dass Single-Thread-Performance nicht mehr so wichtig wäre.

AMD ist übrigens an Soft Machines beteiligt, genauso wie der bei Intel gescheiterte frühere Mikroprozessorchef Albert Yu, wie Samsung und Globalfoundries-Besitzer Mubadala. Das spricht für genügend Schubkraft des Startups, so dass man hier mit interessanten Produkten rechnen kann, die den Prozessormarkt vielleicht noch einmal aufmischen können.

Allerdings ist Transmeta auch nicht an einem schlechten Design gescheitert, sondern schlicht daran, dass man den Takt nicht hoch genug bekam. Das dürfte auch das Hauptproblem von Soft Machines sein. (as)