Java på kisel

Cjip – inte vet jag vilka associationer ni får, men jag kommer närmast att tänka på en handle för en holländsk kryptopunk. Eller något man kan hitta sprayat på ett tunnelbanetåg. Missförstå mig rätt, jag tycker om namnet. Men inget är rätt – ”the Cjip” är faktiskt något så pass exotiskt som java på kisel.

En av min första frågor när vi dök upp hos Imsys i Upplands Väsby var hur man uttalar namnet – rätt och slätt som engelskans ”chip”. Förutom min dimmiga uppfattning om namnet hade jag en annan förutfattad mening att bli av med. Jag förväntade mig ett brådmoget Java- chip med ett leveransdatum i snar futurum. Den föreställningen skulle jag snart bli av med.

Men låt oss ta det från början. Cjip är så mycket som en implementering av en Java- motor (JVM) på kisel – lite förenklat, ett chip med Java inbyggt. När man tänker efter så är det naturlig lösning, Bytekod, alltså det man får när man kompilerar java-källkod, är ju en sorts assembler så varför inte välja det som maskinspråk direkt?

Gör man det behövs ingen virtuell motor (JVM) som interpreterar den bytekoden, dvs översätter den till den CPU som finns till hands. Det som Imsys har skapat är ett litet chip som kör Javas bytekod direkt i hårdvaran. Detta gör att man helt kan hoppa över en JVM – något som gör att deras lösning blir billigare (inga licensavgifter).

Dessutom har den få transistorer vilket gör den billigare att producera och strömsnål. Fördelarna med Cjip enligt Imsys är just Javas portabilitet kombinerat med att den är billig och strömsnål.
Prestandan går dock inte att jämföra med till exempel en modern Intel x86 processor, typ Pentium. Den senare är fortfarande snabbare trots att den kör en motor (JVM) som interpreterar bytekoden. Enligt Stefan Blixt, Cjips konstruktör, är the Cjip lika snabb som en Pentium 133-processor men effektförbrukningen är mindre än 5 procent.

The Cjip in comparison.

Cjip stödjer J2ME (Java 2 Micro Edition) som är en delmängd av Java 2. I J2ME finns själva Java-språket och en hel det av biblioteken. Imsys säger att det är världens första kompletta implementation av Java på kisel.

Just nu kan man hitta Cjip i bläckstråleskrivare som tillverkas av Array. Framtida produkter som Imsys säger sig fokusera är t ex mobiltelefoner, skrivare, terminaler, bilar etc.

Kameleont

Hur har man implementerat stödet i Cjip för Java? Likt en kameleont har den en förmåga att byta utseende, alltså byta den assembler som den kan exekverar. I botten i Cjip så finns det mikrokod som exekverar de maskinkoder som kommer. Det är denna mikrokod som tolkar de bytekoder som kommer.

Genom att byta ut dessa styrkoder kan man implementera olika sorters assembler. Man kan på det sättet också optimera delar direkt i mikrokod och på det sättet rejält höja prestandan.

Utvecklingsmiljö – Developer

Utvecklar gör man i Imsys egen programmeringsmiljö – Developer. Den som jobbat med Microsofts Visual C++ lär känna igen sig. I Developer programmerar man i C/ C++/Java eller assembler som laddas ner i Cjipet, antingen via PCI eller den parallella porten. Inifrån miljön debuggar man också (dock ej i C++ ännu). Programmet kör i dagsläget på Win 95/98/NT men ännu inte på Windows 2000.

Olika utvärderingskit

Tack vare att chipet har funnits ett tag finns det också olika varianter av utvärderings/ utvecklingskit att tillgå. Till exempel finns det en PCI-variant som man helt enkelt sätter i en slot på sin pc (om den nu har plats för ett PCI- kort). Ombord finns det Cjip (naturligtvis), MMC (multimedia-kort), RS232-port (seriell port) och RJ-45 (TCP/IP över Ethernet).

Nästa steg upp är LCD-versionen som kopplas in typiskt via en parallell kabel. Den innehåller dessutom en färg LCD-skärm, en knappsats, IRDA (infraröd sändare och mottagare), audio (”CD-kvalitet”), dubbla seriella portar och en omgång andra saker som LEDs och realtidsklocka. Ungefär som att se en personlig digital historia utplattad på ett grönt kort.

Ett annat kit som Imsys utvecklat för ABB är modulärt på ett finurligt sätt. Tänk er ett kort cirka 10×5 cm, längs med långsidorna sitter det kontakter. Grundkortet innehåller Cjip och lite grundläggande i/o. Andra kort innehåller t ex Ethernet-access. Genom att bara sätta ihop korten ovanpå varandra, ungefär som Lego- bitar kunde man sedan sätta ihop sitt eget utvärderingspaket!
Kan man tänka sig ett kort med Bluetooth?

Konkurrenter

Det finns konkurrenter även om ingen av dem implementerar en Java-lösning direkt i kisel. Crusoe är ett omtalat chip som dock inte konkurrerar direkt med Cjip eftersom den inriktar sig på bärbara datorer och att tolka maskinkode som t ex Intels x86.

Motorolas DragonBall, medlem av 68K- familjen, och som används i Palm drar mer ström och har sin egen assembler och därmed inte blir portabel på samma sätt som Javas bytekod. Zucottos mikroprocessor, Xpresso, är dock en direkt konkurrent, men den implementerar Java-stödet blandat med en del i hårdvara och en del i mjukvara.
Bland stickspåren, verkar det som, hittar vi också Suns Microjava 701 som likt the Cjip kör java direkt i maskinvaran. Enlig uppgift ligger detta projekt dock i malpåsen.

Slutkläm

Jag förväntade mig att finna en intressant framtidsprodukt med betoning på framtid. Det vi fann var en lovande produkt som redan finns här och nu. Om du har behov av bygga ett inbäddat system med Javas fördelar och där ström är premium kolla in Cjip. Det kan vara väl spenderad tid.

Originally published in JayView.

Tags:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: