본문 바로가기
ARM mode와 THUMB mode

ARM mode와 Thumb mode라는 말을 들어봤을 거라 믿어 의심치 않는 이 마당에, 도대체 ARM mode와 Thumb mode는 무엇인지 뜀틀 짚고 폴짝 넘어보겠습니다.

THUMB mode는 왜 태어났는가? THUMB mode는 도대체 무엇을 하는 녀석이란 말인가? THUMB mode는 16 bit 라는데 그건 또 무엇인가? 하는 의혹을 파헤쳐 보는 기회.

THUMB mode는 어찌 보면 ARM mode의 반쪽 version이라고 볼 수 있습니다. 원래 ARM은 32bit RISC machine이고, 32bit로 동작 하는 게 최상의 Performance를 제공할 수 있다는 거죠.machine마다 word size가 다른 건 바로 그런 의미입니다. word란 CPU가 한번에 처리할 수 있는 크기를 말하니까요. 예를 들어 8 bit apple은 8 bit를 word 단위로 하고, 8bit씩 처리를 하는 게 제일~ 좋은 거에요. 16bit INTEL AT는 16 bit를 word 단위로 하고, 16 bit씩 처리를 하지요. 같은 말로 32 bit ARM은 32가 word 단위이고 한번에 32bit씩 처리할 수 있다는 말 입니다요. 바야흐로 THUMB mode는 32bit ARM에서 돌아가는 16 bit 기계어 라는 말인데, 왜 32 bit machine에서 16bit THUMB mode가 필요한 걸 까요? 그 답은 바로 그 놈의 망할 Business에 있습니다. 처음 32 bit ARM을 만들어 냈을 때, 이 세상을 지배하던 Embedded system의 memory는 16 bit data line을 가진 Memory가 그 시대의 주인공 이었슴다. 32 bit Core라고 해서 그 시대에 가장 흔히 구할 수 있고 많이 생산되던 16bit bus line의 메모리를 무시할 수 없는 노릇이었지요.

역시나 Advanced RISC Machine 인 탓에 세상 물정 모르고 앞서가고 있었던 것이지요. ARM을 Advanced Risky Machine이라 불러야 하는 건 아닌가 싶어요. 결국 ARM사는 16 bit bus line을 가진 Memory에서도 효율적으로 사용할 수 있도록 ARM 명령어들을 16 bit로 압축한 명령어 set을 발표하는데 그것이 ARM의 일부분인 THUMB인 것입니다.

뭐, 쉽게 얘기하면 ARM core를 팔아 먹으려고 보니, 세상이 따라오질 못하고 있더라~  우라질레이션. 그리해서~ 그 시대에 맞는 16bit Data bus에도 Performance가 꽤나 괜찮은 기계어 set을 만들어 발표 했는데 그 녀석이 Thumb이라는 이야깁죠. 뭐, 지들 말로는 70%로 code 압축 효과가 있고, 130% 성능 개선이 있다고 말하는데, 이건 16 bit Data bus의 Memory에서 ARM mode를 사용할 때 보다~ 70% 압축효과가 있고, 130% 성능 개선이 있다고 말할 수 있습니다. 혹시나 32 bit Data bus system에서 Thumb mode를 쓰면 과연 좋을까요? 그건 별들에게 물어봐~

이 말 인 즉 슨, 16 bit bus system이라고 해서, ARM을 못 쓰는 건 아니라는~ 것도 아셔야 해요. 두 번 fetch 해오면 되니까요~ ㅡ 그러면 계속 계속 두 번씩 읽어 오느라 Performance에 많은 영향을 끼치겠죠? 그르니까, 16 bit에 맞는 걸 만들어서 한번에 fetch 가능하게 했다는 말이죠.

그러니까, ARM mode와 THUMB mode는 ARM core가 몇 bit로 동작할 것이냐의 상태 mode이고, 다음에 계속 나오는 Exception과 mode는 ARM core의 몇가지 동작 mode를 의미하는 것이오니, 아무쪼록 혼돈 않길 바랍니다.
자자, ARM mode와 THUMB mode에 관한 얘기를 했고, 이 차이에 대해서는 ARM 구현 쪽에서
더 자세히 살펴 볼 테니, 이 정도로 담 넘는 구렁이 친화적인 상태로 은근슬쩍 넘어갈래요.

 
Linked at 친절한 임베디드 시스템 개발자.. at 2009/10/01 12:32

... ⓒ ARM mode와 THUMB mode</a><a href="http://recipes.egloos.com/4985218" designtimesp="8169"> ... more

Linked at [공유기 분석] 참고 자료 &.. at 2018/04/08 22:44

... 스 파티션 설정 [공유기 분석] 참고 자료 2018년 4월 8일 by libera826&middot;0 Comments ARM Assembly 정리 : Blog Thumb 모드 : Blog 임베디드 시스템 취약점 분석 : PDF Wireless Router Hacking : PPT About libera826 Team SH3L 소속으로 보안 공부중인 중딩 개발 ... more

친절한 임베디드 시스템 개발자 되기 강좌 글 전체 리스트 (링크) -



댓글





친절한 임베디드 개발자 되기 강좌 글 전체 리스트 (링크) -