
JOP: A Tiny Java Processor Core for FPGA - jacquesm
http://www.jopdesign.com/
======
cubedice
This looks neat, but it appears to be an 'academic' exercise. I couldn't find
any source code written for the JOP (the only project in the Links section was
down) after scanning some of the pdfs. I did, however, notice the 64 journal
publications the creator has on the subject.

OTOH, he definitely appears to have put a lot of work into this, and I _would_
like to test it out, if I can figure out how.

~~~
jsyedidia
It doesn't look too hard, if you have an Altera FPGA. Just follow the "Getting
Started" link, and it will show you how to download and build the source.

------
richardw
There have been a few runs at this problem. I've wondered for ages why it
didn't pick up steam because surely you could get some great performance
benefits from it. Any ideas?

See <http://en.wikipedia.org/wiki/Java_processor>

~~~
akeefer
Azul systems (<http://www.azulsystems.com/>) has a special-purpose Java
processor, and they do indeed get some impressive speed benefits from it. For
example, having single-instruction write barriers in hardware allows them to
have nearly-pauseless garbage collection on gigantic heaps.

~~~
bokchoi
Here's an excellent google tech talk by Cliff Click of Azul talking about
their hardware. Among the firehose of information in that talk, he mentions
that the hardware guys wanted to add directly execute JVM bytecode. He told
them not to bother since he could JIT it better and they wouldn't be able to
support all the bytecodes anyway. I'd love to know more about why that is.

<http://www.youtube.com/watch?v=5uljtqyBLxI#t=20m00s>

~~~
pmjordan
JITing means you can do dynamic optimisations, e.g. predicting vtable
dispatches. Doing this in hardware is tricky.

------
ramchip
_Java, a popular programming language on desktop system, is seldom used in
embedded systems._

What? Perhaps the introduction is just not aging well...

~~~
michaelneale
heh - the reverse would be true now ;)

------
Kafka
Could it be that the lack of support for "low level" stuff like uint is
holding Java back on embedded systems?

------
ilkhd
Some ARM's have support for JVM bytecode - so what? Anybody heard about them?

~~~
ajross
Cranky much?

Maybe your board doesn't have a jazelle-capable part, or you lack licensing
for it (jazelle isn't publicly documented, sadly). Maybe you _do_ have a bunch
of gates left over on your FPGA.

I mean, it looks like a cool hack to me.

~~~
michaelneale
Cranky??

