Bob, I beleive that you must have misunderstood what Clay told you.
A certain percentage (don't know if it's 79% or not) of the instruction set of the PSC1000 is substantially identical in function to instructions in the JVM. However, they are NOT binary compatible - the bytecodes must be altered before executing on the PSC1000. Further, the remaining instructions must be emulated in software, and the PSC1000 does NOT provide any hardware solution to help with this. (The Sun Java processors do.) Any of the Sun Java processors will execute Java bytecode natively, without any translation. While they do not implement the full JVM instruction set, they include a hardware "trapping" mechenism that allows software to seamlessly take over. (The way this works is very similar to the way that early 808X processors that did not have a built-in numeric processor handled floating-point instructions if you did not have an NDP chip plugged in.) Repeating - the PSC1000 does NOT have this 'trap' mechenism - the Sun chips DO.
In my opinion, ANY stack-based architecture will have a very high congruence with the JVM instruction set. This is because in a stack architecture, there are a large number of opcodes that are just required for any practical design, and that can basically only be done one way.
So, any stack-architecture machine is going to have an ADD instruction (whether it is called ADD or AD or A or ADDTWOFRIGGINNUMBERS) and it is going to add the top two elements of the stack, remove those elements from the stack, and place the result on the stack. There are enough of these basic instructions in any stack machine that there is going to be high percentage of "hits".
Remember that the PSC1000 was NOT DESIGNED FOR JAVA. It is simply a happy accident that it wound'up being well-suited for executing Java code (as would be any stack-architecture machine). |