【发布时间】:2009-04-26 14:51:51
【问题描述】:
iphone处理器ARMV6是否支持MMX指令?
【问题讨论】:
iphone处理器ARMV6是否支持MMX指令?
【问题讨论】:
简短的回答是否定的 - MMX 是一种英特尔技术。更长的答案是 ARM 支持Neon SIMD instruction set。它与 MMX 指令的架构相似(即它计算向量),但显然不一样。 ARM 提供库来帮助您生成 SIMD 代码(使用 OpenMAX 和 GCC 编译器内部函数)。
iPhone 包括不支持 NEON 的 ARMv6KZ 后续型号包括基于 ARM Cortex-A8 内核并支持 Neon 的三星 S5PC100。同样,为 iPad 供电的 Apple A4 是基于 Cortex-A8 的 SoC。
【讨论】:
正如其他人在此处发布的那样,MMX 是适用于 x86 架构的英特尔 SIMD 技术。所以不,iPhone 本身不支持 MMX。
iPhone 配备 ARM Coretex A8 CPU,特别是 Samsung SoC S5PC100,它提供称为 NEON(ARM 等效于 MMX)的 SIMD 扩展。
虽然 Apple 尚未明确记录这一点,但工具链似乎支持它。 gcc 中有 NEON 的内在函数,因此您应该能够使用 NEON 编写 SIMD 代码。
请注意,此功能是 3GS 特有的,因此不向后兼容。您需要确保您的应用被标记以表明它需要 3GS(我认为您不能访问状态寄存器以进行运行时检测)。
【讨论】:
可能有用的链接:ARM Processor Instruction Set Architecture。
看起来 ARMV6 有 一个某种 SIMD 单元...
【讨论】:
ARM 有点可配置,因此,iPhone 中的 ARM 可能无法配置 拥有这个。真正注册该计划的人可能能够回答, 如果 NDA 允许。
如果你有一些必须工作的东西,我猜你可以构建 bochs。我的猜测是您想使用 mmx 指令来提高速度,而且,显然,这不会有很大帮助。如果你有一些运行缓慢的算法,但是你不能对其进行逆向工程 在没有 mmx 指令的情况下运行 bochs 可能会解决问题。
【讨论】: