Java är ett av de mest populära programmeringsspråken för utveckling av bärbara arbetsstationer och serverapplikationer som finns tillgängliga idag. På grund av sin rena design och typsäkerhet blir den också attraktiv inom området inbyggda system. Tyvärr orsakar de dynamiska egenskaperna hos språket och dess rika klassbibliotek betydande overhead när det gäller körtid och minneskonsumtion. Effektiva tekniker för att implementera Java virtuella maskiner som är lämpliga för användning i resursbegränsade miljöer behövs därför. I detta arbete presenterar vi en lösning för mycket begränsade miljöer baserade på CACAO. CACAO är en just-in time kompilering virtuell maskin implementation, kombinerar hög hastighet och liten storlek. Vi har modifierat den ursprungliga versionen av CACAO för att köra utan ett underliggande operativsystem inom bara 1 MB minne. Dessutom presenterar vi en ny teknik för selektiv kompilering av metoder under initieringsfasen av Javaapplikationer i realtid för att förhindra oönskad interaktion mellan dynamisk sammanställning och kritiska uppgifter. Dessutom presenterar vi YARI soft-core som CACAO:s exekveringsplattform inom ett fältprogrammerbart grindsystem. Vi jämför vårt genomförande med två välkända Java-processorer, JOP och Suns picoJava-II, på samma teknik. Även om JOP uppnår en högre klockfrekvens och picoJava-II upptar nästan 4 gånger YARI:s resurser, kan vår lösning överträffa båda med en faktor på upp till 2,8 respektive 2,2.
Det är möjligt att köra CACAO JIT-kompilatorn för MIPS-målet och ett enkelt Java-program inom 1 MB minne REF.
Embedded JIT Compilation with CACAO on YARI
{'venue': '2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing', 'journal': '2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing', 'mag_field_of_study': ['Computer Science']}