0
\$\begingroup\$

I was reading the chapter 4 of the book 'Computer Architecture' by Tanenbaum (since my copy is not in English maybe the title of the English version is not exactly that one), however it is the chapter about the microarchitecture level. I understood the overall mechanism of the IJVM: one ISA instruction (or Java bytecode) is read from the method area (RAM) and the relative microprogram is launched (which can consist of some datapath cycle).

This is what happens if I program my device with Java, but the mechanism is different if I program it with C for example? I think so since C is compiled while Java is interpreted at the microarchitecture level. But if the mechanism is different (and so the microarchitecture) I can't figure out how my computer can handle a program written both in Java or in C. I mean there must a unique method through which the code setup the datapath control signals.

Probably the answer is trivial but I'm not an expert in this field.

\$\endgroup\$
3
  • \$\begingroup\$ The "C" program is usually compiled into a different (native) ISA. IJVM is a special ISA, that needs to be specifically supported by the processor. The processor needs to be able to switch between the two modes. \$\endgroup\$
    – Eugene Sh.
    Jan 14, 2022 at 18:04
  • \$\begingroup\$ Consider that the JVM may just be a program written in C... \$\endgroup\$
    – user16324
    Jan 14, 2022 at 22:57
  • \$\begingroup\$ I’m voting to close this question because wrong site \$\endgroup\$ Jan 16, 2022 at 18:15

1 Answer 1

1
\$\begingroup\$

The point to remember is that the JVM is simply another ISA. The java source is compiled to jvm bytecode whereas your C source is usually compiled to the native ISA, you could compile to jvm bytecode as that is simply another ISA.

You could say the native ISA code is also interpreted by the microarchitecture just like the jvm bytecode (jvm bytecode tends to be more involved).

For a given microarchitecture to support a ‘native’ and jvm ISA there needs to be a mechanism to switch between them. Probably the best example is the ARM Jazelle extension. Wikipedia has a rundown of this.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.