MMX инструкция для Iphone - PullRequest
       13

MMX инструкция для Iphone

2 голосов
/ 26 апреля 2009

Поддерживает ли процессор iphone ARMV6 инструкции MMX?

Ответы [ 5 ]

6 голосов
/ 26 апреля 2009

Короткий ответ - нет - MMX - это технология Intel. Более длинный ответ заключается в том, что ARM поддерживает набор инструкций Neon SIMD . Это архитектура, аналогичная инструкции MMX (то есть, она вычисляет векторы), но это не то же самое. ARM поставляет библиотеки, которые помогут вам сгенерировать SIMD-код (используя OpenMAX и встроенные функции компилятора GCC).

iPhone включает ARMv6KZ, который не поддерживает NEON. Более поздние модели включают Samsung S5PC100, который основан на ядре ARM Cortex-A8 и поддерживает Neon. Точно так же Apple A4, питающий iPad, представляет собой SoC на базе Cortex-A8.

3 голосов
/ 23 ноября 2009

Как уже сообщали другие, MMX - это технология Intel SIMD для архитектуры x86. Так что нет, iPhone не поддерживает сам MMX.

iPhone оснащен процессором ARM Coretex A8, в частности Samsung SoC S5PC100 , который обеспечивает расширение SIMD, известное как NEON (ARM-эквивалент MMX).

Хотя это явно не задокументировано Apple, инструментальная цепочка, кажется, поддерживает это. В gcc есть функции для NEON, поэтому вы должны быть в состоянии написать SIMD-код, используя NEON.

Обратите внимание, что эта функция специфична для 3GS, поэтому не имеет обратной совместимости. Вы должны убедиться, что ваше приложение было помечено, чтобы указать, что оно требует 3GS (я не думаю, что вы можете получить доступ к регистрам состояния для обнаружения во время выполнения).

3 голосов
/ 26 апреля 2009

MMX - это набор команд SIMD для x86. В iPhone используется процессор ARM, поэтому вы не можете использовать MMX.

1 голос
/ 26 апреля 2009

Возможно полезная ссылка: Архитектура набора команд процессора ARM .

Похоже, что ARMV6 имеет SIMD-устройство какого-то вида ...

0 голосов
/ 26 апреля 2009

ARM немного настраивается, поэтому возможно, что ARM в iPhone не есть это. Кто-то, кто действительно подписался на программу, мог бы ответить, если NDA позволяет.

Если у вас есть что-то, что ДОЛЖНО работать, я думаю, вы могли бы построить bochs. Я предполагаю, что вы хотите использовать инструкции mmx для скорости, и, очевидно, это не сильно поможет. Если у вас есть какой-то алгоритм, который может работать медленно, но вы не можете выполнить обратный инжиниринг запуск без инструкций mmx может решить проблему с помощью bochs.

...