Хитрости ARM-процессоров iOS-устройств

7

XCode

Сегодня мы представляем вашему вниманию пересказ статьи Пьера Лебопена (Pierre Lebeaupin) «Некоторые вещи, которые разработчикам под iOS следовало бы знать об архитектуре ARM» («A few things iOS developers ought to know about the ARM architecture») от 19 июля 2010 года (с дополнениями от 25 сентября 2011 года), опубликованной ресурсом Wandering Coder. Надеемся, что этот материал будет интересен и полезен не только разработчикам, но и всем тем, кто интересуется проблемами разработки приложений для мобильной операционной системы iOS и внутренним устройством популярных планшетов и смартфонов компании Apple.

Когда я работал над своей статьей «Introduction to NEON on iPhone», я полагал, что читатели обладают некоторой суммой знаний о процессорах iOS-устройств. В ходе сетевых дискуссий я понял, что часть этой информации, к сожалению, многим неизвестна. Кроме того, я полагаю, что эта информация будет полезным подспорьем для программирования под iPhone (не только в том случае, если вас интересует NEON), даже если вы программируете на языке высокого уровня Objective-C. Вы можете обойтись и без этих знаний, но обладание ими усовершенствует вашу квалификацию разработчика программ для iPhone.

Вводная информация

Все недавно представленные iOS-устройства базируются на процессорах с ARM-архитектурой. Как вы сможете убедиться в ходе прочтения данного материала, эта архитектура несколько отличается от того, к чему вы привыкли на платформах для настольных систем, к которым относятся и x86 и PowerPC. Конечно же, ARM-архитектуру нельзя назвать ни узкоспециализированной, ни нишевой. Почти все мобильные телефоны (и не только смартфоны) базируются на процессорах этого типа, практически все iPod базируются на них же, как и почти все MP3-плееры. Процессоры этой же архитектуры находятся внутри большинства КПК и Pocket PC. Приставки Nintendo тоже базируются на ARM со времен GBA. Сейчас даже некоторые модели калькуляторов от TI и HP базируются на ARM-процессорах. Если говорить о прошлом, то нужно напомнить, что и Newton обладал ARM-процессором (известно, что Apple давний инвестор ARM). И это только известные устройства, не считая огромного множества ARM-процессоров, играющих вспомогательные роли.

ARM-процессоры прославились своими малыми размерами, низким энергопотреблением и высокой производительностью (в рамках своей категории, разумеется). Эти процессоры характеризуются прямым порядком передачи байтов, как и x86. Существуют также процессоры RISC-архитектуры, к которым относятся MIPS, PowerPC и другие. Следует отметить, что симулятор не выполняет код, созданный для ARM. Для запуска на симуляторе приложение компилируется под архитектуру x86 и выполняется как родное для этой архитектуры. Поэтому приложение следует тестировать на том типе устройства, для которого оно предназначено.

7 комментариев

  1. 0

    В статье ошибка. В х86 процессоре не прямой, а обратный порядок байт. Это значит, что шестнадцатеричное число 01 23 45 67 в памяти хранится как 67 45 23 01.

    • 0
      Довбня Олег

      Alex, Из Википедии: «Порядок от младшего к старшему или (англ. little-endian, дословно: «остроконечный»), о происхождении термина ниже): , запись начинается с младшего и заканчивается старшим. Этот порядок записи принят в памяти персональных компьютеров с x86-процессорами, в связи с чем иногда его называют интеловский порядок байтов (по названию фирмы-создателя архитектуры x86).»

  2. 0
    Андрей Зонов

    Есть предложение перевести какую — нибудь именитую книгу по objective c так как на русском ничего хорошего уровня нета хотелось бы если кто то знает что то стоящее посоветуйте
    (отправлено из приложения AppleInsider.ru)

  3. 0
    Константин

    Либо это урезанная статья, либо я даже не знаю что сказать. Не описано ни одной особенности процессоров АРМ, только одна особенность симулятора. Остальное не тянет даже на первый абзац книги о процессорах. Хотелось бы поподробнее, если процессоры Эппл действительно такие «хитрые»
    (отправлено из приложения AppleInsider.ru)

    • 0
      Довбня Олег

      Константин, Это статья, а не книга и в ней рассматриваются только некоторые особенности компиляции iOS-приложений для двух различных наборов команд.
      =Хотелось бы поподробнее, если процессоры Эппл действительно такие «хитрые»=
      В статье раскрыта тема того, что речь идет о трех пересекающихся, но различных понятиях. 1. Наборы команд; 2. Собственно, конкретная реализация ядра процессора, поддерживающего определенный набор команд; 3. Процессор как таковой, который содержит не только ядро.
      Раскрыты и особенности конкретной реализации наборов команд в процессорах iOS-устройств. Для удобства читателей объемная статья разбита на четыре части-страницы.

  4. 0
    developedserj

    о_0 а из приложения как прочитать дальше?
    (отправлено из приложения AppleInsider.ru)

Авторизуйтесь Чтобы оставить комментарий