JavaScript is currently disabled.Please enable it for a better experience of Jumi. Två metoder tävlar om att bygga in Java
Tvist mellan rena javaprocessorer och att införa hjälpprocessor

Det finns flera vägar att gå för att få in Java i inbyggda tillämpningar. Vissa halvledarföretag hävdar att renodlade javaprocessorer är att föredra. Andra menar att hjälpprocessorer som hakas på en vanlig processor ger en mer flexibel lösning.
De som förespråkar renodlade javaprocessorer hävdar att en hjälpprocessor, en så kallad javaaccelerator, i första hand fyller sin funktion i de fall där man redan bundit upp sig för en viss processor och sedan kommer på att man vill köra Java. Den som ägnar sig åt nyutveckling av inbyggda system som ska klara Java gör klokast i att välja en renodlad javaprocessor. En javaprocessor som använder bytekoderna med en gång sparar in en del onödig logikhantering efteråt.

Javaacceleratorns vänner däremot påpekar att en renodlad javaprocessor i och för sig är effektiv, men att den kräver investeringar och utvecklingstid för varje ny processor. En javaaccelerator kan istället hängas på valfri inbyggd processorkärna. En javaprocessor tillåter inte heller återanvändning av annan kod än javakod.

En tredje lösning är att skriva en javatolk speciellt för åttabitarsprocessorer. En sådan har brittiska One Eighty Software byggt. One Eightys javatolk med kodnamn Geneva kan köra vanliga javatillämpningar utan att de behöver anpassas för det mindre processorformatet.

IP-block i FPGA

Javaprocessorn Moon från det brittiska företaget Vulcan ska kunna fungera självständigt, men också som hjälpprocessor till exempelvis en Armkärna på samma chips. Den exekverar javabytekod direkt i kärnan, på en kiselyta som bara är en femtedel av vad som krävs för javaprocessorns moder, Suns Microsystems Picojava 2.0.

Moon är ett IP-block som kan läggas antingen i en FPGA eller i en asic. Den har en stackbaserad arkitektur, och stacken använder de interna minnesbankerna i FPGAn så att inget externt cacheminne behövs.

Huvuddelen av instruktionerna ligger i hårdvaran, och de mer komplexa operationerna sköts av ett fast program (firmware). Den arbetar med åttabitarsinstruktioner, men klarar 32 bitars datavägar.

Philips använder en hjälpprocessor som de kallar för VMI, Virtual Machine Interpreter. VMI läggs direkt i kislet, och kör de enklare javainstruktionerna som annars tar upp en stor del av processortiden. De mer komplexa operationerna sköts av processorn. Det kräver mindre minne än en programvaru-JVM, eftersom delar av javatolken ligger i hårdvaran.

- VMI minskar effektförbrukningen, utan att för den skull kräva mer än marginellt större kiselyta än en javaprocessor, säger Menno Lindwer på Philips Research.

Hjälpprocessorn VMI kan placeras bredvid många olika sorters processorkonstruktioner, utan att varken dessa eller VMI:t måste modifieras. VMI kan även användas för andra plattformsoberoende språk än Java, exempelvis Microsofts IL eller Suns Javacard.

Picojava från Sun Microsystems är en renodlad javaprocessor med risc-liknande arkitektur och med pipeline. Enbart de instruktioner som direkt förbättrar prestandan av javaprogram finns inlagda i hårdvaran.

De instruktioner som inte finns implementerade direkt i hårdvaran utförs genom mikrokod eller tillståndsmaskiner, om de är kritiska för systemets prestanda. övriga instruktioner fångas upp och emuleras.

Bytekod som maskinspråk

JV Xtreme Accelerator från Insilicon kombineras med en inbyggd standardprocessorkärna för att skapa systemkretsar. Den snabbar upp javaexekveringen genom att lägga de 87 vanligaste javabytekoderna som maskinkod, däribland instruktionslogik och trådhantering. Enligt Insilicon kan processorns prestanda förbättras upp till 55 gånger med hjälp av JV Xtreme, eller 15 gånger om den används ihop med en programvaru-JVM.

JV Xtreme påminner vid en hastig anblick mycket om VMI. Om man studerar JV Xtreme närmre visar det sig att den snarare är en komplett processor, eftersom den bland annat innehåller en komplett ALU, intern stack och register.

Svenska Imsys javaprocessor the Cjip har gått steget längre än JV Xtreme, med en mikroprocessor som använder de 226 vanligaste javabytekoderna som maskinspråk.

Javaprogram översätts normalt i två steg. Först från Java till Javas maskinspråk javabytekod. Sedan från bytekod till den aktuella processorns maskinspråk. Men the Cjip är en processor vars maskinspråk är javabytekod. Det andra översättningssteget behövs inte.

Jazelle från Arm och Jstar från Nazomi Communications är lösningar som båda ligger mitt emellan VMI och Picojava. Både vad gäller storlek, prestanda, modularitet och flexibilitet. Jstar är en hjälpprocessor, som i realtid kompilerar Javas bytekod direkt till maskinkod. Jstar kan kombineras med de flesta 32- eller 64-bitars inbyggnadsprocessorer, och även från åttabitarsprocessorer och uppåt om så skulle krävas.

Jazelle är Arms javaaccelerator, en hjälpprocessor som kopplas ihop med en vanlig Arm-processor. Enligt Arm ger Jazelle åtta gånger snabbare Java än en motsvarande lösning med en javatolk.


Torun Bager
MER LÄSNING:
 
KOMMENTARER
Kommentarer via Disqus

Anne-Charlotte Lantz

Anne-Charlotte
Lantz

+46(0)734-171099 ac@etn.se
(sälj och marknads­föring)
Per Henricsson

Per
Henricsson
+46(0)734-171303 per@etn.se
(redaktion)

Jan Tångring

Jan
Tångring
+46(0)734-171309 jan@etn.se
(redaktion)