Почему перевод компьютеров на ARM-процессоры - неудачная идея

В последнее время появляется все больше информации о том, что крупные игроки на рынке компьютеров снова начинают смотреть в сторону ARM-процессоров: к примеру, Microsoft смогли заставить на них работать полноценную (почти) Windows 10, более того — планшеты с ними скоро поступят в продажу. Есть слухи, что Apple начнет переводить Mac на свои процессоры к 2020 году — а ведь они тоже основаны на архитектуре ARM. Но, как говорится в Библии, «нет ничего нового под солнцем» — попытки отказаться от архитектуры x86 были и до этого, и что из этого вышло, и почему шанс того, что сейчас все пойдет по тому же сценарию, велик — мы и поговорим в этой статье.

История попыток отказаться от х86

Перенесемся мысленно в 1996 год. Тогда на рынке уже четко определились два конкурента — Microsoft с Windows 95 и Apple с Mac OS 7 (или же System 7). И, дабы завоевать большую долю рынка, каждый из них пытался придумать что-то оригинальное. У Apple это был планшет Newton — и, хотя он и провалился из-за отвратительно работающего рукописного ввода, продукт был достаточно инновационным в то время (и работал, кстати, под управлением ARM-процессора). Microsoft идея планшетом понравилась, но пойти они решили по своему собственному пути — «железом» пусть занимаются сторонние разработчики, компания же займется софтом — так и появилась Windows CE (прожившая аж до 2013 года — то есть 17 лет).

Суть системы была проста: она должна выглядеть как Windows, работать максимально похоже на Windows, запускать программы, написанные на Win32 API, но при этом иметь поддержку процессоров на архитектурах, отличных от x86. Идея была классная, но реализация подкачала: и хотя CE 1.0 и 2.0 действительно были похожи на Windows 95, функционально они здорово проигрывали последней: были проблемы по обмену данными с другими устройствами, не было поддержки мультимедийных функций, и, что самое главное — эту ОС не оценили разработчики, поэтому количество сторонних приложений было мизерное. И с учетом того, что на рынке была такая система, как Palm OS, работающая и быстрее, и интуитивно понятнее, с большим количеством софта и лучшим функционалом — продажи устройств на CE были неважными. В 2000 году Microsoft пытается улучшить ситуацию, выпустив версию CE 3.0, где добавлена возможность выхода в Интернет и проигрывания MP3 и видеороликов, но момент был уже упущен.

Окончательно «похоронила» Windows CE для планшетов сама же Microsoft, представив в 2002 году Windows XP Tablet Edition — по сути обычную XP, но с наэкранной клавиатурой и другими оптимизациями для работы пальцем или стилусом. Понятное дело, что планшеты на ней были по сути обычными компьютерами с x86-процессорами, которые поддерживали весь софт для XP. Так что этот момент можно считать первой победой x86-процессоров.

Переместимся еще на 4 года вперед — в 2006. Уже было очевидно, что эра одноядерных процессоров подходит к концу: у AMD уже есть двухядерные процессоры, Intel тоже готовит к выпуску двухядерные Core 2 Duo. А что же в этом время происходит на Mac? Увы — все плохо: компания в 90-ых сделала ставку не на x86, а на процессоры архитектуры PowerPC, разработанной IBM. Тогда они были если не лучше, то, как минимум, конкурировали на равных с решениями от Intel. Но тут в игру вмешалась AMD, и в стане x86 началась гонка за частотой — она росла вдвое чуть ли не раз в два года, и в итоге к 2004 году частоты процессоров доросли до вполне современных 3 ГГц. А вот с PowerPC так не получилось сразу по двум причинам: более «толстый» техпроцесс и нежелание отказаться от старых наработок привели к тому, что к тому же году частоты топового PowerPC G5 были лишь на уровне 2 ГГц, а производительность Pentium 4 с 3 ГГц была местами вдвое выше.

К счастью, в Apple быстро поняли, что «лодка» IBM тонет, и вовремя перешли на решения от Intel. Но у читателя наверное возникнет вопрос — а что с программами? Ведь эти две архитектуры сильно различаются, так что люди, купившие новые Mac с процессорами от Intel, должны были остаться без софта. Ответ прост — был написан эмулятор, который позволял на процессорах от Intel запускать софт для PowerPC. С учетом того, что Core 2 Duo были местами в 3-4 раза быстрее, даже с учетом эмуляции программы зачастую работали даже быстрее, чем на «родной» архитектуре, так что конечные потребители или не заметили разницы, или были даже довольны приростом производительности. Ну а через год большинство разработчиков программ оптимизировало их под x86, а еще через год Apple убрала из системы эмулятор PowerPC за ненадобностью. Так что это можно считать второй победой x86.

Переместимся в совсем уж недалекое прошлое — 2012 год: Microsoft представляет две системы, Windows 8 и Windows RT. Про первую думаю рассказывать нет смысла: обычная Windows, работающая только на x86-64, с несколько видоизмененным интерфейсом. А вот вторая ОС была несколько интереснее: с виду она выглядела как Windows 8, и даже имела бесплатный предустановленный Office 2013. Но работало первое устройство на это ОС — планшет Surface — на ARM-процессоре Tegra 3. Ничего не напоминает? Да, история с Windows CE повторяется. Достаточно большому количеству пользователей захотелось попробовать и новую ОС, и сам планшет Surface от ее создателя.

Увы — всех быстро постигло разочарование: и хотя система даже работала на ядре от Windows 8, возможность установки ПО была жестко ограничена Магазином Windows, где 90% программ до сих выглядят так, как будто написаны школьниками на переменке. И даже это не было бы большой проблемой, если бы Microsoft продавали свой планшет по цене популярных нетбуков — тогда бы его хотя бы брали как печатную машинку с выходом в интернет. Но, увы, ценник на Surface был на уровне планшетов на Windows 8 с процессорами Intel Atom. Да, производительность Atom была на уровне Tegra 3 в Surface, но вот то полноценная ОС позволяла ставить любой нужный софт, так что в итоге продажи Surface на Windows RT были крайне низкими. Microsoft через год обновила ее до Windows 8.1 RT и даже выпустала неплохой планшет Lumia 2520, но, увы, ситуацию это не спасло, и до Windows 10 эта версия ОС не обновилась — так что планшеты на x86 опять победили.

Что же в итоге? За 20 лет было сделано две попытки уйти с x86 на другие архитектуры, и одна попытка уйти с других архитектур на x86. Первые две с треском провалились, а вот последняя — вполне удалась. И теперь Microsoft предпринимают еще одну попытку подружить Windows и ARM — посмотрим, что же в итоге получилось.

ПолноценнаяWindows 10 на ARM — наконец-то успех?

И вот в 2017 года пошли слухи, что Microsoft готовит полноценную Windows 10 для ARM. В самом конце 2017 появились готовые образы такой системы, а в начале 2018 на выставке были представлены несколько планшетов на ней. Со стороны все смотрится здорово: Snapdragon 835, 4 ГБ ОЗУ или больше, SSD на 128 ГБ или больше — вполне адекватное «железо» для хорошего планшета, но что же на деле?

К слову — несколько удивляет выбор процессора: Microsoft с 2012 года умела запускать Windows на решениях от Nvidia — процессорах Tegra. Последняя версия процессора, Tegra X1, отлично показала себя в приставке Nintendo Switch, а с учетом того, что графика у этого процессора по сути является обычной видеокартой Nvidia 900-ой серии, только со сниженными частотами и небольшим количеством CUDA, выбор такого процессора решил бы проблему с драйверами на графику — не пришлось бы их писать под видеокарту Adreno, которыми оснащены процессоры Snapdragon. С другой стороны — последние имеют встроенный модем, а с учетом того, что планшеты — все же мобильные устройства и эксплуатироваться будут вне дома — возможно именно это и перевесило чашу весов в сторону Snapdragon.

Но мы несколько отвлеклись. Конфигурация, указанная выше, будет стоить от 1000 долларов (планшет HP Envy x2) — и тут возникает вопрос: а стоит ли он своих денег? Ведь за 900 долларов можно взять планшет Surface Pro 4 с процессором Intel Core m3, охлаждаемым также пассивно. Давайте посмотрим на тесты производительности, и начнем с PCMark 8 — он эмулирует реальные пользовательские задачи:

И тут мы видим оглушительный провал — даже простенький Celeron оказывается на 60% быстрее, решения же с Core m3 быстрее в 2.5 раза. Чтобы была понятна производительность мобильного Celeron: при открытии вкладки с 1080р видео с Youtube система уже становится задумчивой. А если в фоне будет еще какая-нибудь закачка или обновление системы — работать и вовсе станет некомфортно. Теперь представьте, что мы имеем процессор на треть слабее — проблемы с производительностью будут возникать постоянно. И будут они в большинстве задач: к примеру, обработка фото на Celeron проходит в 4 раза быстрее:

Единственные тесты, где Snapdragon оказывается хотя бы на уровне Celeron или даже лучше — в так называемых нативных приложениях, которые уже умеют работать на ARM. Но даже в них превосходство Core m3 неоспоримо:

С производительностью видеокарты дела обстоят все же несколько лучше:

Как видите, в популярном тесте Futuremark Cloud Gate Adreno 540 все же смог обогнать интегрированную графику в Celeron на 10%. Но, в любом случае, отставание от Core m3 близко к двукратному.

Ну ладно, с производительностью все достаточно печально — а что же со временем автономной работы? На презентации нам обещали аж 20 часов работы — и если это так, то производительность для достаточного количества людей отходит на второй план. Но, увы, чуда не произошло — при серфинге в Chrome (надеюсь, никто Edge всерьез не воспринимает?) время автономной работы составило 10 часов — на 1.5 часа больше, чем у Dell с полноценным процессором:

Стоит ли огромная переплата за слабое железо лишних 1.5 часов автономной работы? На мой взгляд — нет.

И тут возникает вопрос — почему все так плохо с производительностью и временем автономной работы, ведь под Android Snapdragon 835 зачастую работает вдвое быстрее, оставляя Celeron далеко позади? Ответ прост — эмуляция: это единственный способ заставить х86-программы работать на ARM-процессоре. А она, как мы знаем, очень требовательная, и в лучшем случае падение производительности оказывается двукратным, в худшем — предела нет (отличным примером является эмулятор Playstation 3 для ПК, где i7 вместе с GTX 1080 Ti выдают в играх 5-7 fps, хотя ни для кого не вызывает сомнении то, что такая связка реально мощнее консоли больше чем на порядок). В случае с переходом с PowerPC на x86 проблема падения производительности из-за эмуляции не стояла, ибо x86-процессоры были существенно мощнее. Но вот ARM-процессоры реально не дотягивают даже до 2-ядерных Intel Core, поэтому эмуляция только усугубляет проблему не самой высокой производительности.

Вторая проблема — ARM-процессоры не поддерживают множество нужных для некоторых программ инструкций: к примеру, нет поддержки AVX, FMA, последних версий SSE. Это опять же или ограничивает круг запускаемых программ, или снижает производительность в программах, где эти инструкции используются.

Третья проблема не столь глобальна — процессоры ARM умеют пока что эмулировать только x86 программы. С учетом того, что до полноценного перехода на x64 еще далеко, и большинство программ имеют инсталляторы и для 32-битных систем, особых проблем это не вызовет.

А вот последняя проблема уже достаточно глобальна — Windows 10 на ARM поддерживает драйвера, совместимые только с ARM64. Иными словами — если Microsoft не включила в систему поддержку нужного вам устройства, а его производитель не удосужился написать новый драйвер для ARM — вы его не подключите. В итоге какие-нибудь флешки или жесткие диски работать будут нормально, а вот с модемами, принтерами, камерами, картридерами и прочими устройствами будут проблемы.

Можно ли решить эти проблемы? Конечно — нужно «всего лишь» начать писать софт нативно на ARM. И это опять же знакомо — это же говорили нам Microsoft на презентации Windows RT в 2012 году. Что сделало большинство разработчиков? Правильно, посмеялось и забыло про такую ОС. Почему? Да потому что это банально невыгодно — нужно «перелопатить» кучу кода, бывает даже писать с нуля — и ради чего, пары-тройки девайсов, на которых вашу программу может вообще никто запускать не будет? Поэтому возможно что самый популярный софт, типа того же браузера Chrome, и перепишут нативно на ARM, но что-то более редкое, типа того же Photoshop, так и будет запускаться в режиме эмуляции с низкой производительностью.

Как решить эту проблему? Apple сделала просто — взяла да и перевела сразу все свои устройства с PowerPC на x86, так что у разработчиков просто не оставалось выхода как начать писать софт под новую архитектуру. Но Microsoft, очевидно, от поддержки x86 отказываться явно не будет — хотя бы из-за низкой производительности текущих ARM-процессоров. Так что проблемы, как видите, в реальности нерешаемые, и поэтому шанс, что планшеты на Windows с ARM «взлетят» — достаточно низок.

Удастся ли Apple выпустить ультрабук с ARM-процессором к 2020 году?

С Microsoft разобрались, теперь поговорим о их главном конкуренте — Apple: по слухам, те хотят выпустить ультрабук на собственном ARM-процессоре к 2020 году. И, увы, они опять же совершают ту же ошибку, что и Microsoft — основная масса MacBook и iMac останутся на процессорах от Intel, поэтому опять же разработчики будут неохотно портировать свой софт под ARM — это не принесет им прибыли. Поэтому опять же будет эмуляция, и опять же будут существенные потери производительности и, в итоге, никаких причин брать Mac на ARM. Единственный выход из ситуации — это резко перевести все свои устройства с процессоров от Intel на решения от ARM, но это граничит с областью фантастики: сейчас в iMac и Mac Pro ставятся в том числе и 18-ядерные мощнейшие процессоры Intel Xeon, и дабы пользователи, купив новый Mac на ARM, не почувствовали снижения производительности, Apple должна разработать чип, который будет как минимум вдвое их мощнее при том же тепловыделении. Реально это? Очевидно, что нет.

Итог — для каждой архитектуры свои устройства

В итоге я еще раз процитирую фразу из Библии: «нет ничего нового под солнцем». Компании очередной раз пытаются отказаться от x86, и, судя по всему, это очередной раз не получится. Возможно, в будущем, когда производительность ARM-процессоров станет существенно выше, чем у решений от AMD и Intel, переход и будет совершен, но пока что для каждой архитектуры есть свои типы устройств: для смартфонов и тонких планшетов это ARM, для ноутбуков и ПК — x86-64.

Нравится9
Комментарии (6)
  • Все правильно сказано! Кто бы что не говорил, по любому мейнстрим в основных направлениях в it -x86-64.
  • А в чем собственно заключаются плюсы АРМ процессоров, что за ними так гонятся майки и яблочники?. Для мобилок то оно понятно, но ноуты, компы и т.п. на процах для мобилок.
  • Tegra X1, отлично показала себя в приставке Nintendo Switch, а с учетом того, что графика у этого процессора по сути является обычной видеокартой Nvidia 900-ой серии
    Ахахахахах ))))
  • arm - для мобилок. Для сонсолей и ПК - не годится
  • Aphennom
    Почему же? Чтого такого не хватает архитекторе набора команд ARM, что она не годится?
  • Roman Kerimov
    просто бизнес - ничего личного. Уже всё устоялось, никто не допустит другого варианта. Это как с нефтью. Какой бы двигатель ты не изобрёл - нефтяные магнаты тебя либо купят, либо ещё что сделают.
B
i
u
Спойлер