2009-04-26 2 views

답변

3

MMX은 x86 용 세트 SIMD 명령이다이 같은

보인다. iPhone은 ARM 프로세서를 사용하므로 MMX를 사용할 수 없습니다.

+1

인텔의 ARM 프로세서는 MMX를 지원합니다. 보다 정확하게는 MMX라는 기술을 지원합니다. Intel은 ARM 프로세서에 SIMD 명령어를 추가하고 x86 MMX와 ​​아무 관련이 없으며 호환되지 않는 경우에도 "MMX"라고했습니다. (SMT와 CMT가 완전히 다른 두 가지 일지라도, 그들은 Pentium4에서 SMT를 구현하고 Itanium에서 CMT를 구현하고 HyperThreading이라고 불렀습니다.) –

+4

인텔은 ARM 프로세서를 만들지 않습니다. 그들은 StrongARM 프로세서를 만들었습니다. –

0

ARM은 약간 구성 가능합니다. 따라서 ARM의 iPhone에는 이 없으므로 가능합니다. NDA에서 허용하는 경우 실제로 프로그램에 가입 한 사람이 대답 할 수 있습니다 ( ).

반드시 작동해야하는 것이 있다면 보쉬를 만들 수 있습니다. 내 생각 엔 속도를 위해 mmx 명령어를 사용하기를 원한다는 것이고, 이것은 분명히 도움이되지 않을 것입니다. 천천히 실행될 수있는 알고리즘이 있지만 리버스 엔지니어링 할 수없는 경우mmx 명령어없이 실행하면 bochs가 문제를 해결할 수 있습니다.

6

짧은 대답은 아니오 - MMX는 인텔 기술입니다. 더 긴 대답은 ARM이 Neon SIMD instruction set을 지원한다는 것입니다. 이 아키텍처는 MMX 명령어와 비슷한 아키텍처로 (즉, vecors를 계산하지만) 동일하지는 않습니다. ARM 라이브러리를 사용하여 SIMD 코드를 생성 할 수 있습니다 (OpenMAX 및 GCC 컴파일러 내장 함수 사용).

iPhone에는 NEON을 지원하지 않는 ARMv6KZ가 포함되어 있습니다. 나중에 모델에는 ARM Cortex-A8 코어를 기반으로하는 Neon을 지원하는 Samsung S5PC100이 포함됩니다. 마찬가지로 iPad를 구동하는 Apple A4는 Cortex-A8 기반 SoC입니다.

+1

물론 아이폰 3Gs와 비 -8GB 아이팟 터치 3 세대는 네온을 가지고있다. (아마 아이 패드도 그렇다). 덕분에 –

+0

. 이를 반영하기 위해 기본 댓글이 업데이트되었습니다. –

+1

링크가 끊어졌습니다. –

3

다른 사람이 여기 게시 한 것처럼 MMX는 x86 아키텍처 용 Intel SIMD 기술입니다. 따라서 iPhone은 MMX 자체를 지원하지 않습니다.

iPhone에는 (MMX와 동일한 ARM)이라는 SIMD 확장을 제공하는 ARM 코어 텍스 A8 CPU, 특히 Samsung SoC S5PC100이 있습니다.

아직까지 Apple에서 명시 적으로 설명하지는 않았지만 툴체인이이를 지원하는 것 같습니다. gcc에는 NEON에 대한 내장 함수가 있으므로 NEON을 사용하여 SIMD 코드를 작성할 수 있어야합니다. NEON example for iPhone SIMD

  • GCC intrinsics for NEON Reference
  • 이 기능은 3GS에 고유합니다

    • , 그래서 호환되지 않습니다. 앱에 3GS가 필요함을 표시하도록 플래그가 지정되어야합니다 (런타임 감지를 위해 상태 레지스터에 액세스 할 수 있다고 생각하지 않습니다).