자바 프로세서

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

자바 프로세서(Java Processor)는 자바 가상 머신을 하드웨어로 구현한 것으로 자바 바이트코드 자체를 기계어해석하고 실행하는 비메모리 칩이다. 하지만 하드웨어로 직접 구현하기에는 복잡한 자바 가상 기계의 특성 상 100% 하드웨어로 동작하는 경우는 없으며 해당 자바 프로세서에 맞게 수정된 자바 가상 머신 내지 소프트웨어 모듈의 도움이 필요하다.

일부 구현은 자바 해석기에 비해 20배까지 빠르다고 주장되고 있지만 기계어로 사용되기에는 적합하지 않은 자바 바이트코드의 특성으로 인해 동등한 기능을 하는 RISC 기계어를 실행하는 경우에 비해서는 훨씬 비효율적이다. 따라서 C/C++ 같이 기계어로 컴파일 되는 언어를 동시에 지원하는 경우 별도의 명령어가 있는 경우도 있다.

또한 JIT 컴파일이나 AOT 컴파일(ahead of time compile) 기술의 발전으로 인해 최근에는 CISC/RISC CPU 상에서 JIT 혹은 AOT 컴파일 방식을 사용하는 편이 일반적으로 더 효율적으로 알려져 있다. 이런 맥락에서 ARM은 자바 바이트코드를 직접 실행하는 DBX (Direct Bytecode eXecution)에 대한 대안으로 RCT (Runtime Compilation Target)이라는 기술을 추가해서 RISC의 장점은 지키면서 JIT 컴파일이나 AOT 컴파일을 향상시키는 쪽으로 방향을 선회했다. 따라서 자바 프로세서는 메모리 제약이 현저해서 해석기를 사용할 수 밖에 없는 상황에 한해 제한적으로 사용되고 있다.

구현[편집]

현재까지 구현된 자바 프로세서로는 다음이 있다.

  • 피코자바(picoJava): 구 썬 마이크로시스템즈에 의해 개발된 최초의 자바 프로세서로 실제 제품에 사용되지 못했으며 현재 단종되었다.
  • aJile사의 aJ100[1](단종), aJ102[2], aj200 [3]
  • Jazelle: Jazelle DBX (Direct Bytecode eXecution)은 ARM 프로세서의 확장으로 하드웨어에서 자바 바이트코드를 직접 읽어서 실행한다.
  • Imsys사의 Cjip[4], IM3910[5]: 자바 바이트코드를 직접 실행할 수 있는 네트워크 프로세서 제품

주석[편집]

  1. [1] aJ100 소개글
  2. [2] aJ102 제품 페이지
  3. aJ200 aJ200 제품 페이지
  4. [3] Cjip가 탑재된 네트워크 컨트롤러 모듈 페이지
  5. [4] 제품 페이지