Pieter Edelman
15 March 2012

Fujitsu Laboratories heeft op de Date-conferentie een processoremulator onthuld die tegelijkertijd snel en cyclus-accuraat is, een combinatie die moeilijk ligt. Met de emulator kunnen Arm-processoren op daadwerkelijke snelheid nagebootst worden op X86-CPU‘s. De vinding komt van pas bij het ontwikkelen van embedded systemen, waar vaak zeer trage cyclus-accurate simulatoren worden ingezet om het timing-gedrag van de software te finetunen zonder dat de target-processor beschikbaar is.

Het werk is gebaseerd op Qemu, een opensource processoremulator die code voor een brede reeks doelprocessoren met redelijke prestaties op een eveneens brede reeks doelprocessoren kan uitvoeren. De instructies voor de host-processor worden tijdens het draaien just-in-time vertaald naar instructies voor de doelprocessor. Doordat dat steeds per blok gaat en de vertaalde blokken in een cache worden opgeslagen, hoeven er relatief weinig vertaalslagen gemaakt te worden en bereikt de emulator een acceptabele snelheid.

Met een dergelijke JIT-aanpak komen de snelheid en de timing van onderdelen ten opzichte van elkaar echter niet overeen met het runtime gedrag op een daadwerkelijke processor. Dat is een belangrijke hobbel bij de ontwikkeling van embedded software. De Fujitsu-ingenieurs voegen echter componenten toe aan de emulator om het timing-gedrag te benaderen. De originele software wordt van te voren statisch geanalyseerd om het timing-gedrag te bepalen van de machinecode. Tijdens de uitvoering draait een proces mee om de nodige tijdvertragingen te injecteren in de uitvoer (de X86-processor is veel sneller dan de geëmuleerde Arm-CPU). Een extra proces schaaft deze timing bij als de voorspelling er naast zat.

Volgens Fujitsu kan hun emulator een 100 MHz Arm-core op daadwerkelijke snelheid nabootsen, met een afwijking van maximaal 10 procent. Wat ze met hun tool gaan doen, is nog niet bekend.

 advertorial 

System engineering @ ASML, practices and challenges

During the first online session of the System Architecting Conference, on 25 January, Frank de Lange and Tom Castenmiller (ASML) will address the role of systems engineering and discuss the essences of the roadmapping process, the holistic system design and the product generation process. Register now for free.