Dynamitt fra britisk programvareoppstart

En britisk oppfinnelse åpner for at all binærkode kan kjøres på alle prosessorer. "Dynamite" gir emulering uten tap av ytelse, og retter seg spesielt mot mobile klienter.

Å kjøre binærkode på en annen prosessor enn den koden er beregnet på, er tradisjonelt forbundet med tap av ytelse. Windows-emulatorer for Mac fører deg for eksempel straks noen år tilbake i tid i forhold til det å kjøre programmet på en samtidig PC. Årsaken er enkel: Binærkoden må oversettes løpende, og det krever sitt. Det er som når du hører en tale der hver setning må oversettes fra polsk til norsk før taleren kan begynne på sin neste polske setning.

Det som nystartede britiske Transitive Technologies Ltd hevder å kunne gjøre, kan sammenliknes med så avansert simultantolking at du ikke merker at taleren snakker polsk.

Transitive beskrives som et spinoff fra University of Manchester i England. Initiativet kommer fra erfarne forskere i informatikk. Hovedkvarteret er etablert i San Diego i California.

Selskapets "Dynamite" er ikke myntet på Windows-emulering, men på det voksende markedet av ulike klienter til mobile og Internett-baserte tjenester. Prosessorfloraen på Internett-bokser, hånd-PC-er, smarte telefoner og så videre, er svært variert, og det er en hemsko for flere typer nye tjenester at de ikke kan distribueres i binærkode. Ved å kombinere dynamisk oversettelse av binærkode med avanserte rutiner for optimalisering, åpner Transitive for at terminalleverandører kan bytte prosessor, for eksempel fra ARM til MIPS, uten å måtte endre på binærkodede tjenester som de ønsker å beholde. All kode fra ARM kan kjøres direkte på den Dynamite-påkostede MIPS-prosessoren. Det skal gjelde alt fra standardapplikasjoner til drivere for tilleggsutstyr.

Dynamite-koden består av tre lag: en dekoder, en kjerne og en koder. Dekoderen mottar den binære koden beregnet på prosessor A og tolker den til generiske uttrykk. I kjernen identifiseres sekvenser der koden kan forbedres. Forbedringene lagres, og kan brukes igjen. Koderen leverer den nye binære koden videre til prosessor B.

Det er lagt opp til at en prosessor kan kjøre samtidige varianter av Dynamite for å oversette og optimalisere kode opprinnelig beregnet på flere andre prosessorer. Dynamite krever minne, men skal ellers ikke gi noen ytelsesbelastning. Optimaliseringsrutinene veier opp for det oversettelsen krever, hevdes det.

Transitive peker på at i en typisk applikasjon, kjøres ti prosent av koden i nitti prosent av tiden. Å optimalisere kode krever at man identifiserer de segmentene som anvendes oftest, fordi små forbedringer der kan gi stor uttelling for brukeren. Dynamite skal være i stand til å forbedre koden mens den kjører, ved å forholde seg til hvordan den faktisk brukes.

Selskapet mener Dynamite kan drastisk endre forholdet mellom utvikling på prosessorsiden og utvikling på programvaresiden. Prosessorer vil i økende grad kunne spesialiseres med tanke på bestemte anvendelser, siden kravet til binærkompatibilitet med andre eller tidligere varianter kan frafalles. Selskapets optimaliseringsteknologi kan i en viss grad føres tilbake til kompilatorene, slik at den opprinnelige binærkoden får bedre ytelse. Transitive kaller dette for "co-architecture": applikasjoner og prosessor kan spesialiseres hver for seg, og likevel oppnå bedre samspill på kortere tid med færre utviklingsressurser.

En annen følge er at bindingen mellom prosessor og operativsystem opphører. Transitive mener at Dynamite kan legges valgfritt over eller under operativsystemet der den kjøres. Ved å bruke Dynamite til å tolke StrongArm-kode på sin DragonBall-prosessor, vil Palm kunne kjøre alt som leveres av applikasjoner til PocketPC-plattformen, og kapre blant annet all den spesialiserte utviklingen som legges ned i for eksempel Compaqs iPaq.

Det omvendte er selvfølgelig også mulig.

Og hvis det utvikler seg et markedskrav at alle framtidens mobile klienter må leveres med en Dynamite-tolk, er framtiden sikret for de britiske akademikerne.

Til toppen