Конец близок - х86 умрет и миром будет править ARM - ИноПитер

Цитата дня: Человек с новой идеей – не более чем сумасброд, пока идея не восторжествует.
Марк Твен

Конец близок — х86 умрет и миром будет править ARM

25.07.2021 в 11:31 | время чтения: 8 мин.

Конец эпохи не за горами. Все что мы наблюдаем сейчас косвенно указывает на то, что в течение 5-10 лет процессоры на базе архитектуры x86 либо совсем перестанут выпускаться, либо станут очень узкопрофильным и нишевым продуктом. Не согласны? Хотите знать, как мы пришли к таким выводам? Ну что же, давайте разберемся.

Что такое архитектура процессора и какое это все имеет значение?

Я (автор статьи) не планировал добавлять этот блок с самого начала, потому что мне казалось, что если человек заинтересовался темой ARM vs x86, то он по определению должен понимать, что ему предлагают прочитать. Но все таки давайте вкратце разберемся о чем тут дальше пойдет речь.

Итак, с точки зрения программиста – это набор команд, которые можно «скормить» процессору так, чтобы он их смог выполнить. С точки зрения инженера – это внутренняя конструкция процессора. То есть то, как он физически устроен. И одно никак не отделимо от другого, потому что команды надо где-то хранить, а для их выполнения требуются определенные физические модули…в общем, архитектура это и команды и устройство процессора одновременно.

От сложного к простому

Исторический процесс движется обычно от простого к сложному. Сначала была спираль ДНК, потом – клетка. Клетки собрались в организм, а организмы собрались в сообщества. В технике тоже есть свой эволюционный процесс. В начале был транзистор. Ну и так далее… Так вот процессоры ARM, как ни странно, не являются вершиной технической эволюции. Они скорее являются мышами, в мире где есть куда более интересные и приспособленные организмы. Но так или иначе, численностью они скоро победят всех своих естественных конкурентов.

Главное отличие x86 от ARM в том, что первый – сложнее. В условном дереве эволюции процессоров x86 находится выше, чем ARM. Он работает на буквально сложном наборе инструкций, который так и называется: сложный набор инструкций или CISC (Complex Instruction Set Computer), а ARM на упрощённом наборе инструкций RISC (Reduced Instruction Set Computer).

Оба этих вида наборов инструкций в своей идее пытаются упростить и ускорить обработку информации процессором, но делают это по-разному.

  • CISC – старается одной инструкцией заложенной сразу в процессор описать сразу несколько действий, чтобы программа была проще в разработке и выполнении, но это стоит дополнительных циклов вычислений на каждую отдельную инструкцию. То есть в одну инструкцию может укладываться и команда загрузить данные в процессор, и обработать, и что делать с этими данными дальше.
  • RISC – предлагает только базовые шаги и каждое процессорное действие должно описываться отдельной командой. Если надо загрузить данные – на процессор подаётся команда «загрузить», если нужно обработать – подаётся команда, которая определенным образом обрабатывает данные. И так далее. С одной стороны, это уменьшает количество циклов обработки, с другой – программы, которые подаются на эти процессы – сложнее.

Попробуем объяснить на кошках:

  • Процессору с CISC нужно было просто сказать «возьми кошку» и он самостоятельно брал кошку.
  • Процессору с RISC нужно было как глупому объяснять: «подойди к кошке, опустись на коленки, протяни руку, протяни вторую руку, возьми в руками кошку…»

Почему вообще появились две такие разные ветки процессоров? Такое разделение возникло тогда, когда программы писались вручную на ассемблере. То есть буквально, программисты не писали сложные алгоритмы понятным человеку языком, а объясняли процессору что и к чему прибавлять или что из чего вычитать. И в то время CISC, которому нужно было меньше объяснять конечно был несомненным лидером в гонке. Представьте себе, что вы программист и вы выбираете себе в команду помощника. Кого вы возьмёте, умного парня, который схватывает на лету или дурачка, которому нужно все объяснять? Ответ очевиден. Плюс не стоит забывать, что даже самые умные программисты – это люди и они могут ошибаться. И чем сложнее был алгоритм, тем больше в нем потенциально было ошибок. В коде для RISC, которому нужно было объяснять каждое действие снова и снова по шагам ошибок всегда было больше, чем в коде для CISC, которому надо было просто сказать «а теперь хватай кошку». Так CISC стал захватывать процессорный мир и весьма успешно его захватил на всех системах, где программы были относительно сложными. Именно поэтому сейчас во всех домашних компьютерах стоит x86 с CISC. Ведь никто не хотел кратно усложнять то, что можно было сделать быстрее, надежнее и проще.

С другой стороны, старший то конечно умный был детина, но младший оказался куда шустрее, потому что не был таким замороченным. Так вот с точки зрения архитектуры мышления умный проигрывает глупому. Первый сначала обдумывает, рационализирует, а потом делает, а второй – получает команду и молниеносно её исполняет. К тому же умный с годами только успел и сейчас в архитектуре процессора x86 есть команды, которые существуют там ещё с 70-х годов, но ARM как был в своем начале пути девственно чист, так и остался до сих пор. К тому же сегодня уже почти никто из программистов не пишет на ассемблере, только самые безумные гении. А для компиляторов, которые выступают переводчиками с относительно человеческого языка программирования на язык понятный процессору в общем-то нет разницы, кому объяснять что делать, сложному х86 или простому ARM. Но ведь весь этот потенциал умного 86-го надо ещё и кормить, обслуживать, охлаждать. В итоге при схожей производительности ARM будет значительно меньше потреблять энергии, меньше греться и физически из-за меньшего количества заморочек внутри будет тоже меньше. Потому смартфоны все работают на процессорах ARM и при этом сегодня уже вполне догоняют по производительности компьютеры.

Впрочем, есть ещё одно но…

И оно называется «лицензирование». Создатели архитектуры ARM – не производят процессоры, а продают лицензии на свои разработки другим фирмам. Потому процессоры ARM производят так много компаний и в таком большом количестве техники их можно обнаружить. А вот лицензия на архитектуру x86 есть только у Intel и AMD. И они как собака на сене даже близко никого не подпускают к своим разработкам. И вот тут конечно рынок решает не в пользу тех, кто сидит на золотой горе из кремния.

И снова мир меняет Apple

Не так давно Apple объявила о том, что в своих ноутбуках переходит с архитектуры x86 на ARM и представила чип M1 собственной разработки, основный на этой архитектуре. А потом вся линейка профессиональных продуктов Apple быстро и незаметно пересела на эти чипы. При этом в отличие от попыток Майкрософт несколько лет назад совершить похожий переход со своим Surface – Apple все сделали по уму. Они подготовили динамический двоичный транслятор Rosetta 2. Специальную программу, которая буквально переводит созданный для х86 код на язык понятный для процессоров ARM. И делает это настолько хорошо, что иногда приложения даже лучше работают в результате такого перевода. То есть для пользователей переход станет совершенно незаметным. Все программы продолжат работать как и работали раньше, ничего не случится особенного. А вот для архитектуры x86 это означает фактически конец.

Опять же, MacBook на ARM обещает куда большее быстродействие и автономность при меньшей теплоотдаче. А при определенных условиях еще и большую производительность! Но что ещё важнее для мобильной электроники – системы на ARM занимают меньше места. В итоге, это все в сумме дает слишком большой перевес и у х86 не остаётся никаких козырей в рукаве.

Естественный отбор в искусственной среде

Еще одним предвестником кончины 86-х процессоров стал выход Windows 11. В этой версии Windows появилась нативная поддержка мобильных приложений. И что такого, спросите вы? А то, что аналитики предполагают, что в Майкрософте тоже не дураки сидят и видят куда движется мир. Оставаться последней компанией, которая делает софт для тонущего корабля x86 Майкрософт не хочет, потому такими аккуратными и маленькими шажками подбирается к тому, чтобы перетечь и забрать всех своих пользователей на новую процессорную архитектуру. Они уже предпринимали такую попытку с предыдущей версией Windows, но та попытка была слишком радикальной и пользователи её не приняли. Потому Майкрософт пошуршали в своих кабинетах и решили зайти с другого конца: дать возможность пользоваться Android приложениями на компьютере. Удобно? Удобно. Привыкайте так сказать, к унификации.

Впрочем, в этом нет трагедии. Простой эволюционный процесс в области технологий. За историю было много веток развития процессорных архитектур, зачастую очень интересных, которые фактически – вымерли. Взять к примеру ту же Cell архитектуру от Sony. Впервые она появилась в PlayStation 3 (и почти нигде не появлялась после). Это был очень интересный и амбициозный проект. По производительности на ватт потребляемой мощности – впереди всех конкурентов. Но что главное – таких возможностей масштабирования не предлагала ни одна другая архитектура. Разные устройства с процессорами Cell можно было объединять в кластеры и давать им одну на всех задачу. По сути, делать из разных устройств одно устройство. Так на базе обычных консолей в Массачусетском университете даже смогли собрать суперкомпьютер, который моделировал столкновения черных дыр. И для этого потребовалось всего 16 игровых приставок. А поняв потенциал проекта и добавив еще 400 плейстейшенов учёные смогли собрать машину для исследования распространение гравитационных волн, которые искажают ткань пространства-времени. Да, из обычных Sony PlayStation 3. И это все благодаря архитектуре Cell. Но в итоге, при всей любви ученых к этим процессорам – естественный отбор не оставил им шанса. Обычным пользователям, на которых в первую очередь были ориентированы разработки, такие фишечки были ни к чему. А программисты до физической боли ненавидели разрабатывать софт под хитроумную архитектуру. Так и умер невероятный Cell, прожив всего-то ничего по меркам истории.

x86 тоже скорее всего умрет. Конечно это будет долгая смерть. Медленное затухание. Но шансов в исторической перспективе у него, если смотреть из сегодняшнего дня не так много.

Продавайте акции, покупайте акции

Потому продавайте акции Intel и покупайте акции Qualcomm, господа. Будущее конечно предсказать невозможно, возможно только определить вероятность, и вероятнее всего – будущее за ARM.

ОМФ

Поделиться с друзьями