SlideShare a Scribd company logo
Platov
Портирование кода на мобильные
     устройства iOS/Android
        Константин Платов
Platov
ARM
• Лицензирование ядра
• System On Chip
• RISC архитектура
Лицензирование


         Intel Xscale:
         • ARMv5TE
         • Улучшенный кэш
         • 40-битный аккумулятор
         • SIMD “Wireless MMX”
             HTC Universal
System On Chip
• Одно или более ядер
• Акселераторы
• Специализированные сопроцессоры
• Память
• Интерфейсы ввода/вывода
• Обвязка (осцилляторы, таймеры)


                                    TI OMAP
RISC
•   Load/Store архитектура
•   16 регистров по 32 бита
•   Фиксированные команды
•   Мощные адресные команды
•   Однотактовое выполнение
•   Условное выполнение
•   Быстрый сдвиг
Семейство ARM
Ядро          ARM9    ARM9E    ARM10   ARM11   Cortex   Cortex-A50
Архитектура   ARMv4T ARMv5TE       ARMv6       ARMv7     ARMv8
Особенность            DSP         SIMD        NEON       64-bit
Thumb         Thumb   Thumb        Thumb       Thumb2    Thumb2
Кроссплатформенность
Принцип написания кода

• Единая типизация
• Алгоритмы
  – Системные вызовы
  – Базовые операции
• Аппаратно-зависимые части
Единая типизация
Единая типизация
Алгоритмы. Системные вызовы.



                       Пример: XDAIS
Алгоритмы. Базовые операции
Аппаратно-зависимые части
• Сильно зависят от API фреймворков
• Часто используют не Native средства
• Используют менее переносимые языки
Базовые врапперы
•   Системный лог
•   Менеджер памяти
•   Мьютексы / Атомарные операции
•   Менеджер потоков
•   Системная информация
•   Трасинг / Логирование
•   Работа с файлами
•   Средства профилирования
Дополнительные врапперы
•   Сокеты/работы с сетью
•   Аудиоустройства
•   Видеоустройства
•   Устройство ввода
Преимущество разделения кода
 Аппаратная часть    Базовые   Алгоритмическая
                    операции        часть
     System


                    APIs
      Video                        Engine


      Audio
Пример: uint64 >> n




Чему равны res63 и res64?
Пример: uint64 >> n
OS            Windows   OSX            OSX            iOS
Компилятор    Cl        clang          clang          clang
Архитектура   I386      I386           x86_64         arm
Разрядность   32 бита   32 бита        64 бита        32 бита
res63         0x0       0x0            0x0            0x0
res64         0x0       0x1234…45678   0x1234…45678   0x0
Пример: uint64 >> n
На что следует обратить внимание?
•   Память данных/кода
•   Выравнивание данных
•   Оптимизация под процессор
•   Плавающая точка
•   Целочисленное деление
•   Многопоточность и MainThread
Итог
К о н с та н т и н П л ато в
 п р о г р а м м и с т, A g e n t / V o I P
   k.platov@corp.mail.ru

More Related Content

PPTX
ARM vs Intel microarchitecture
Ilya Kryukov
 
PDF
Архитектура ЭВМ
yaevents
 
PDF
Павел Курочкин - STeameR
Oksana Kurysheva
 
PDF
2 х пр-ные серверы supermicro super server
Mikhail Ostroverkhiy
 
PPTX
Chipset
Artur Repo
 
PDF
Вычислительная инфраструктура без американских производителей: реалии и возмо...
КРОК
 
PPTX
Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
Ontico
 
PDF
Zenovich
kuchinskaya
 
ARM vs Intel microarchitecture
Ilya Kryukov
 
Архитектура ЭВМ
yaevents
 
Павел Курочкин - STeameR
Oksana Kurysheva
 
2 х пр-ные серверы supermicro super server
Mikhail Ostroverkhiy
 
Chipset
Artur Repo
 
Вычислительная инфраструктура без американских производителей: реалии и возмо...
КРОК
 
Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
Ontico
 
Zenovich
kuchinskaya
 

Viewers also liked (17)

PDF
Romanenko
kuchinskaya
 
PDF
Bubnov
kuchinskaya
 
PDF
Zamyakin
kuchinskaya
 
PDF
Perepelitsa
kuchinskaya
 
PDF
Zacepin
kuchinskaya
 
PDF
A.pleshkov
kuchinskaya
 
PDF
Rabovoluk
kuchinskaya
 
PDF
Panfilov
kuchinskaya
 
PDF
Kalugin balashov
kuchinskaya
 
PDF
Smirnov dependency-injection-techforum(1)
kuchinskaya
 
PDF
Balashov
kuchinskaya
 
PDF
Smirnov reverse-engineering-techforum
kuchinskaya
 
PDF
Haritonov
kuchinskaya
 
PDF
Zagursky
kuchinskaya
 
PDF
Chudov
kuchinskaya
 
PDF
Osipov
kuchinskaya
 
PDF
Kubasov
kuchinskaya
 
Romanenko
kuchinskaya
 
Bubnov
kuchinskaya
 
Zamyakin
kuchinskaya
 
Perepelitsa
kuchinskaya
 
Zacepin
kuchinskaya
 
A.pleshkov
kuchinskaya
 
Rabovoluk
kuchinskaya
 
Panfilov
kuchinskaya
 
Kalugin balashov
kuchinskaya
 
Smirnov dependency-injection-techforum(1)
kuchinskaya
 
Balashov
kuchinskaya
 
Smirnov reverse-engineering-techforum
kuchinskaya
 
Haritonov
kuchinskaya
 
Zagursky
kuchinskaya
 
Chudov
kuchinskaya
 
Osipov
kuchinskaya
 
Kubasov
kuchinskaya
 
Ad

Similar to Platov (20)

PPT
022
JIuc
 
PPTX
Процессоры для мобильных устройств
BerikU
 
PPT
CUDA Course 2010 at MSU
larhat
 
PPTX
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
VThn18
 
PDF
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
PDF
Разработка встраиваемой операционной системы на базе микроядерной архитектуры...
Vasily Sartakov
 
PDF
Н. Иготти. Виртуализация и виртуальные машины. Лекция 12
Computer Science Club
 
PDF
Microsoft: Создание игр на DirectX для Windows 8 и Windows Phone 8
DevGAMM Conference
 
PDF
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
PPTX
Дмитрий Рыжков. Intel Android x86.
Leonid Bogolubov
 
PDF
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
PPT
Олег Антонян
ForkConf
 
PDF
Marmalade: Кроссплатформенность для профессионалов. Как и почему?
DevGAMM Conference
 
PDF
Архитектура AMD64 (EM64T)
Tatyanazaxarova
 
PPT
Антон Шумихин - Архитектура ОС
GAiN@ESD
 
ODP
игровая логика, проблемы и решения
Владимир Кожаев
 
PPTX
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Ontico
 
PDF
64 бита
Tatyanazaxarova
 
PPTX
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Ontico
 
PPTX
Wargaming.net: Архитектура современных 3D движков
DevGAMM Conference
 
022
JIuc
 
Процессоры для мобильных устройств
BerikU
 
CUDA Course 2010 at MSU
larhat
 
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
VThn18
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
Разработка встраиваемой операционной системы на базе микроядерной архитектуры...
Vasily Sartakov
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 12
Computer Science Club
 
Microsoft: Создание игр на DirectX для Windows 8 и Windows Phone 8
DevGAMM Conference
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
Дмитрий Рыжков. Intel Android x86.
Leonid Bogolubov
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
Олег Антонян
ForkConf
 
Marmalade: Кроссплатформенность для профессионалов. Как и почему?
DevGAMM Conference
 
Архитектура AMD64 (EM64T)
Tatyanazaxarova
 
Антон Шумихин - Архитектура ОС
GAiN@ESD
 
игровая логика, проблемы и решения
Владимир Кожаев
 
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Ontico
 
64 бита
Tatyanazaxarova
 
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Ontico
 
Wargaming.net: Архитектура современных 3D движков
DevGAMM Conference
 
Ad

More from kuchinskaya (12)

PDF
Kharkov
kuchinskaya
 
PPTX
владимир габриелян
kuchinskaya
 
PPTX
чашкин иван
kuchinskaya
 
PPTX
сумин андрей
kuchinskaya
 
PPTX
митасов роман
kuchinskaya
 
PPTX
кренин владимир
kuchinskaya
 
PPTX
константин лебедев
kuchinskaya
 
PPTX
дыдыкин егор
kuchinskaya
 
PPT
ярослав рабоволюк
kuchinskaya
 
PPTX
сергей спиридонов
kuchinskaya
 
PPTX
игорь ермаков
kuchinskaya
 
PPTX
дмитрий юдин3
kuchinskaya
 
Kharkov
kuchinskaya
 
владимир габриелян
kuchinskaya
 
чашкин иван
kuchinskaya
 
сумин андрей
kuchinskaya
 
митасов роман
kuchinskaya
 
кренин владимир
kuchinskaya
 
константин лебедев
kuchinskaya
 
дыдыкин егор
kuchinskaya
 
ярослав рабоволюк
kuchinskaya
 
сергей спиридонов
kuchinskaya
 
игорь ермаков
kuchinskaya
 
дмитрий юдин3
kuchinskaya
 

Platov