embeded/ARM2014. 4. 19. 23:53
thumb
32bit ARM 프로세서에서 16bit 명령어를 지원하는 기능이다.
일단 32bit 명령어는 말그대로.. 명령어 자체가 4byte인거고
RISC 특성상 명령어가 넘쳐나기 때문에 명령어 길이를 줄여 바이너리 크기를 줄이기 위한 방법으로 제공된다.
또한 thumb 사용시 데이터버스를 16bit로 사용하기 때문에
32bit 버스를 구성하지 않아도 되어 데이터버스를 회로 구성에도 잇점이 생긴다.

1994년 릴리즈된 ARM7TDMI 부터 지원되며 CPU 모델상에 T가 들어갈경우 Thumb를 지원한다.

[링크 : http://skyul.tistory.com/54]
[링크 : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0210c/CACBCAAE.html]
[링크 : http://en.wikipedia.org/wiki/ARM_architecture]


Jazelle는 
Java의 꿈이었던 Java Bytecode CPU라고 해야하나?
CPU에서 Native ByteCode를 95% 정도 지원하고 나머지는VM 으로 처리하는 방식으로
ARMv5TEJ 부터 지원하고 J가 자바지원을 의미한다.

아무튼... 안드로이드가 좀 빨라진 이유중에 하나가
Cortex-A8/A9에서 Jazelle의 후속 기술인 ThumbEE를 지원하면서 JIT 가속(?)을 받아서가 아닐까?
 Jazelle DBX (Direct Bytecode eXecution) allows some ARM processors to execute Java bytecode in hardware as a third execution state alongside the existing ARM and Thumb modes. Jazelle functionality was specified in the ARMv5TEJ architecture and the first processor with Jazelle technology was the ARM926EJ-S. Jazelle is denoted by a 'J' appended to the CPU name, except for post-v5 cores where it is required (albeit only in trivial form) for architecture conformance.
 Jazelle RCT (Runtime Compilation Target) is a different technology and is based on ThumbEE mode and supports ahead-of-time (AOT) and just-in-time (JIT) compilation with Java and other execution environments.

Instead, the Thumb Execution Environment (ThumbEE) is now preferred. Support for this is mandatory in ARMv7-A processors (such as the Cortex-A8 and Cortex-A9), and optional in ARMv7-R processors. ThumbEE targets compiled environments, perhaps using JIT technologies. It is not at all specific to Java, and is fully documented; much broader adoption is anticipated than Jazelle was able to achieve.

[링크 : http://en.wikipedia.org/wiki/Jazelle ] 

[링크 : http://www.arm.com/products/processors/technologies/jazelle.php]

'embeded > ARM' 카테고리의 다른 글

Freescale Multimedia framwork  (0) 2014.09.17
freescale i.mx283 / i.mx515  (0) 2014.08.19
SSI - Synchronous Serial Interface  (0) 2013.12.18
ubuntu gcc-arm 패키지 목록  (0) 2013.08.31
jtag tap - Test Access Port  (0) 2013.07.05
Posted by 구차니