Také zvláštne riešenia IV - Ajile
100% JVM v hardware
wek, 29.11.2014-22:33



Java vznikol so zámerom vytvoriť moderný vyšší programovací jazyk, ktorým by sa dali písať vysoko-prenositeľné programy pre všetky možné výpočtové platformy, od malých embedded procesorov a mikrokontrolérov až po vysokovýkonné "plnohodnotné" počítače.

Do vienka dostal modernú objektovú orientovanosť a viacvláknovosť (multitasking v širšom slova zmysle), a prenositeľnosť je zabezpečená tým, že sa jedná o interpretovaný jazyk, avšak zdrojové texty sú predkompilované do jednotnej binárnej formy, tzv. bytekódu.
Na cieľovej platforme potom stačí implementovať "len" interpreter pre tento bytekód, tzv. Java Virtual Machine, JVM.

Je zaiste lákavé mať možnosť vyvíjať programy pohodlne na "veľkom", výkonnom a pamäťami, diskami, monitorom, klávesnicou, myšou, atď. dobre vybavenom PC, a potom tento program bez akejkoľvek zmeny len "nasypať" do ktorejkoľvek cieľovej platformy.
Toto je vlastne aj v oficiálnom hesle Javy: Write Once, Run Anywhere.
Bolo by to krásne, keby v tom nebolo nejaké ale.
Ale to ale v tom je...

Objektová orientovanosť aj multitasking je pomerne náročná na pamäť (RAM) aj na vykonávací čas. To prvé je v typických mikrokontroléroch pomerne vzácny zdroj, a jeho zväčšovanie - interne aleb pripájaním externej památe - má za následok zvyšovanie ceny nad hodnoty, na ktoré sme u MCU zvyknutí. To druhé spôsobuje, že programy bežia pomalšie ako sme u MCU zvyknutí a vznikajú problémy s real-time aspektami, ktoré sú v mnohých MCU aplikáciách kľúčové.


To sú dôvody, prečo plnohodnotná JVM implementácia priamo v hardware vznikla až na prelome tisícročí (napokon, tam sa datuje aj softwarová implementácia JVM v DS80C400, o ktorej sme písali v predchádzajúcom dieli tohto miniseriálu). Na počiatku bola vývojová skupina americkej zbrojársko-elektronickej firmy Rockwell-Collins (rádioamatéri určite spoznajú to druhé meno - áno, je to ten slávny výrobca vysielačiek z obdobia počas druhej svetovej vojny a po nej, v 70.rokoch odkúpený veľkým konglomerátom Rockwell).


Po niekoľkých rokoch vývoja sa táto skupina oddelila a vytvorila spoločnosť Ajile Systems,
ktorá začala ponúkať prvý plne hardwarový JVM procesor aJ-100 (Datasheet).
A nešlo o žiadne orezávatko.


Výber z parametrov (píše sa rok 2000):


K tomu samozrejme aj vývojové prostriedky - optimalizujúci linker a debugger. Podľa dobových tlačových správ bola cena od 17$ pri odbere 10k.
Pritom nejde o mikrokontrolér v plnom slova zmysle, keďže programová pamäť (a pre väčšie aplikácie aj dátová) musela byť pridaná externe.


Neskôr k aJ-100 pribudla "zredukovaná" verzia aJ-80, ktorá mala zmenšenú externú zbernicu na 8-bitovú a zníženú rýchlosť na 66MHz (aj80 Datasheet), čím sa dosiahla aj nižšia cena (12$ pri 10k).


Architektúra aJ-80:



Táto verzia sa objavila na "stamp" module (spolu s externou FLASH a RAM) spoločnosti Systronix, ktorá už ponúkala aj moduly na základe spomenutého DS80C4xx.



Aj keď tieto procesory podľa všetkého nesplnili očakávanie úspechu a nerozšírili sa vo veľkom množstve aplikácií, spoločnosť Ajile existuje dodnes. A dodnes ponúkajú procesory založené na JVM, samozrejme spolu s výberom moderných periférií a s vyšším výkonom: aJ-102, označený ako "network processor", a aJ-200, označený ako "multimedia processor"...

---
Aj keď podľa všetkého Java v mikrokontroléroch neurobila závratnú kariéru - zrejme kvôli spomínaným "ale" - aj naďalej o ňu určitý záujem pretrváva.

Dôkazom sú aj aktuálne ponuky - napríklad suita MicroEJ od francúzskej spoločnosti IS2T, ako aj jej implementácia do MCU radu STM32(*) podporovaná priamo spoločnosťou ST.


Uvidíme, či sa so zvyšujúcimi možnosťami MCU bude nich rozširovať aj počet aplikácií založených na Jave...

---
(*) edit 9.2020: Tu bol link na [url] ktory medzicasom stratil obsah a stal sa obetou "zberaca domen". Mozno archive.org ma dobovu kopiu


tento článok je z mikroZONE
( https://www.mikrozone.sk/pluginy/content/content.php?content.104 )