2014-02-10 1 views
1

엄지 손가락 명령을 사용하면 코드 크기가 줄어들지 만 지침의 수가 늘어나므로 엄지 손가락 실행 속도가 느려지는 연구 논문을 읽었습니다. 그러나 명령 수는 어떻게 증가합니까? 엄지 손가락에 너무 복잡한 지침이 여러 지침으로 분리되어 있습니까? 이것은 내 직감이다. 내가 올바른 생각을하고 있는지 확인하고 싶었다.팔 명령 세트와 비교하여 엄지 손가락의 명령 카운트가 어떻게 증가합니까?

+0

제 의견으로는 당신의 직감이 옳습니다. 이는 Thumb 모드에서 감소 된 명령어 세트로 인한 것이며, 예를 들어 moveq를 에뮬레이트해야 할 필요가 있으므로 두 가지 별도의 명령어 (따라서 더 많은 시간), ite 및 mov가 필요합니다. – brainovergrow

+0

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/ch02s02s09.html – auselen

답변

0

논문 Profile Guided Selection of ARM and Thumb Instructions Arvind Krishnaswamy 및 Rajiv Gupta ()에 의해 The University of Arizona은 좋은 연구 결과를 제공합니다. 비록 구식이지만. 그 사이에 ARM은 게임을 다시 변경 한 Thumb2 명령 세트를 출시했습니다.

이 논문의 일부를 요약하면 많은 레지스터가 필요한 알고리즘 (해싱과 같은)이 있습니다. 전통적인 엄지 ISA 참고R0-R8에 대한 제한된 레지스터. 알고리즘에 spill이 발생하면 상당히 느려집니다. 그러므로 ISA가 이길 수있는 병적 인 경우가 항상 있습니다. 또한 게임 보이 어드밴스에 대한 일반적인 지혜 인 모드가 정상 (느린) 메모리보다 빠릅니다. 그러나 더 빠른 내부 RAM (1 또는 0 대기 상태)에서 ARM 모드가 더 빨리 실행됩니다. Thumb2 (개선 엄지 ISA)에 대한

는 많은 한계가 제거 된 그리고 최대한 빨리 거의 항상 (또는보다 빠른) ARM 모드. 모든 것은 항상 상대적입니다.

  1. 사용중인 메모리 시스템입니다.
  2. 측정 방법 (전원, 실행 시간, 메모리 사용량).
  3. 코드가 수행하는 작업은 무엇입니까?

명확한 대답이있을 수 없습니다. 시스템 및 작업에 대한 자세한 정보를 제공해야합니다.

참고 : ISA는 명령어 세트 아키텍처 또는 사용 가능한 어셈블러/기계 코드의 유형입니다.