2

iphone处理器ARMV6是否支持MMX指令?

4

5 回答 5

6

简短的回答是否定的——MMX 是一种英特尔技术。更长的答案是 ARM 支持Neon SIMD 指令集。它与 MMX 指令的架构相似(即它计算向量),但显然不一样。ARM 提供库来帮助您生成 SIMD 代码(使用OpenMAX和 GCC 编译器内部函数)。

iPhone 包括一个不支持 NEON 的 ARMv6KZ,后来的型号包括一个基于 ARM Cortex-A8 内核并支持 Neon 的三星 S5PC100。同样,为 iPad 供电的 Apple A4 是基于 Cortex-A8 的 SoC。

于 2009-04-26T18:08:01.257 回答
3

MMX是 x86 的SIMD指令集。iPhone 使用 ARM 处理器,因此您不能使用 MMX。

于 2009-04-26T15:09:55.023 回答
3

正如其他人在这里发布的那样,MMX 是用于 x86 架构的英特尔 SIMD 技术。所以不,iPhone 本身不支持 MMX。

iPhone 配备了 ARM Coretex A8 CPU,特别是三星 SoC S5PC100,它提供了称为NEON(ARM 相当于 MMX)的 SIMD 扩展。

虽然 Apple 尚未明确记录这一点,但工具链似乎支持它。gcc 中有 NEON 的内在函数,因此您应该能够使用 NEON 编写 SIMD 代码。

请注意,此功能是 3GS 特有的,因此不向后兼容。您需要确保您的应用程序被标记以表明它需要 3GS(我认为您不能访问状态寄存器以进行运行时检测)。

于 2009-11-23T12:54:10.613 回答
1

可能有用的链接:ARM 处理器指令集架构

看起来ARMV6有某种SIMD单元......

于 2009-04-26T15:00:09.600 回答
0

ARM 有点可配置,因此,iPhone 中的 ARM 可能没有这个。如果 NDA 允许,实际注册该计划的人可能能够回答。

如果你有一些必须工作的东西,我猜你可以构建 bochs。我的猜测是您想使用 mmx 指令来提高速度,而且,显然,这不会有很大帮助。如果您有一些运行缓慢的算法,但是如果没有 mmx 指令,您无法对其进行逆向工程以运行,那么 bochs 可能会解决问题。

于 2009-04-26T15:22:15.413 回答