Почему процессоры Apple M1 такие быстрые

В кон­це 2020 года Apple выпу­сти­ли первую линей­ку ноут­бу­ков на соб­ствен­ном про­цес­со­ре M1. Это было боль­шое собы­тие, пото­му что:

  • Про­цес­со­ры Intel к это­му момен­ту мораль­но устарели.
  • В линей­ке ноут­бу­ков Apple не было ниче­го ново­го уже года два.
  • Пер­вые тесты пока­за­ли, что ком­пью­те­ры на M1 очень быст­рые и энергоэффективные.

Давай­те раз­бе­рём­ся, в чём магия про­цес­со­ра M1 и сто­ит ли сей­час рас­смат­ри­вать его как рабо­чий инстру­мент. Сто­ит ли пере­хо­дить на ноут­бу­ки с про­цес­со­ра­ми Apple сей­час или в бли­жай­шее время?

Эта ста­тья — раз­бор видео­ро­ли­ка, кото­рый вышел на кана­ле Engadget. Если зна­е­те англий­ский, луч­ше посмот­ри­те видео, а если нет — читай­те нашу корот­кую версию.

Архитектуры процессора

У про­цес­со­ров есть поня­тие архи­тек­ту­ры: как в нём всё устро­е­но, как дви­га­ют­ся сиг­на­лы, в каком поряд­ке и кем обра­ба­ты­ва­ют­ся инструкции.

👉 Архи­тек­ту­ра про­цес­со­ра похо­жа на устрой­ство сту­ден­че­ско­го обще­жи­тия. Пред­ставь­те, что у вас на эта­же живёт 100 сту­ден­тов: маль­чи­ков и дево­чек. Каж­дое утро им нуж­но одно­вре­мен­но встать, схо­дить в туа­лет, умыть­ся и спу­стить­ся на лиф­те в сто­ло­вую. Как орга­ни­зо­вать лиф­ты, сан­уз­лы и ком­на­ты, что­бы мини­ми­зи­ро­вать зато­ры? При этом есть физи­че­ские огра­ни­че­ния: не боль­ше какого-то коли­че­ства сан­уз­лов и толь­ко одна лиф­то­вая шах­та. В зави­си­мо­сти от того, как вы ском­по­ну­е­те сан­уз­лы и лиф­ты, у вас в обще­жи­тии по утрам будет либо сво­бод­но, либо час пик. 

Похо­жая про­бле­ма у раз­ра­бот­чи­ков про­цес­со­ров: у них есть коман­ды раз­но­го типа, кото­рые нуж­но отда­вать раз­ным обра­бот­чи­кам. Каж­дый обра­бот­чик зани­ма­ет место, это место огра­ни­че­но. И нуж­но так раз­ло­жить про­цес­сор, что­бы не было зато­ров, но при этом сэко­но­мить место. 

За годы суще­ство­ва­ния мик­ро­про­цес­со­ров при­ду­ма­ли мно­го про­цес­сор­ных архи­тек­тур, самые рас­про­стра­нён­ные сре­ди них — RISC и CISC.

Архитектура RISC (как у Apple) — много простых команд

RISC под­дер­жи­ва­ет про­стые коман­ды. Их мало, но выпол­ня­ют­ся они очень быст­ро. Что­бы из RISC-команд полу­чи­лась полез­ная про­грам­ма, нуж­но мно­го инструк­ций, а для них — мно­го памяти.

Одна из фишек RISC — прин­цип «одна инструк­ция — один цикл». Цикл — это одно дей­ствие про­цес­со­ра. Если у вас про­цес­сор на 2 гига­гер­ца — это 2 мил­ли­ар­да дей­ствий в секун­ду. И в каж­дом из этих дей­ствий испол­ня­ет­ся какая-то одна инструк­ция — взял что-то из памя­ти, сло­жил, умно­жил, вычел, поло­жил в память и т. д. 

Напри­мер, если нам нуж­но пере­мно­жить два чис­ла, в архи­тек­ту­ре RISC вы дади­те про­цес­со­ру четы­ре инструкции: 

👉 ЗАГРУЗИ В X ЧИСЛО ИЗ РЕГИСТРА 2:3

👉 ЗАГРУЗИ В Y ЧИСЛО ИЗ РЕГИСТРА 5:2

👉 УМНОЖЬ ЧИСЛО X НА ЧИСЛО Y

👉 ПОЛОЖИ В РЕГИСТР 2:3 ТО ЧИСЛО, КОТОРОЕ ЛЕЖИТ В X

Есть и дру­гие фиш­ки — напри­мер, боль­шой регистр и осо­бый под­ход к парал­лель­ным вычис­ле­ни­ям. В целом мож­но ска­зать, что RISC — это делать «быст­ро, мно­го и тупо». 

CISC — классическая архитектура для сложных инструкций (Intel, AMD, x86)

Когда ком­пью­те­ры толь­ко зарож­да­лись, в 1960-х годах, у раз­ра­бот­чи­ков были ограничения:

  • Про­грам­мы писа­ли напря­мую для про­цес­со­ра, руч­ка­ми. Раз­ра­бот­чи­кам хоте­лось бы писать как мож­но бли­же к нор­маль­но­му чело­ве­че­ско­му язы­ку и что­бы ком­пью­тер делал за них рабо­ту по расшифровке. 
  • Память была дико доро­гой и мед­лен­ной, поэто­му про­грам­мы долж­ны быть малень­ки­ми. Луч­ше пусть про­цес­сор уме­ет «рас­шиф­ро­вы­вать» мою коман­ду, чем я буду ему на пяти стро­ках объ­яс­нять, что делать.

Архи­тек­ту­ра CISC как раз помо­га­ла решать эти проблемы.

CISC под­дер­жи­ва­ет более слож­ные коман­ды, бла­го­да­ря кото­рым код полу­ча­ет­ся более ком­пакт­ным и чита­е­мым. Напри­мер, та же коман­да умно­же­ния на CISC будет выгля­деть так: 

👉 ПО-БРАТСКИ УМНОЖЬ ЧИСЛО ИЗ 2:3 НА ЧИСЛО ИЗ 5:2

Это одна ком­пакт­ная инструк­ция, кото­рую про­цес­сор сам «рас­ку­рит»: что надо взять дан­ные из нуж­ных реги­стров, где-то их хра­нить, пере­мно­жить, потом запи­сать обрат­но в нуж­ные реги­стры. Понят­но, что про­цес­со­ру пона­до­бит­ся боль­ше вре­ме­ни на эту «рас­кур­ку», но зато код ком­пакт­ный и читаемый. 

Зачем было менять архитектуру

В CISC-процессорах Intel, на кото­рых рабо­та­ли ком­пью­те­ры Apple послед­них лет, нако­пи­лись проблемы:

  • Если про­цес­сор был доста­точ­но быст­рым, он грел­ся и потреб­лял мно­го энер­гии, быст­ро раз­ря­жая бата­рею ноутбука. 
  • Если про­цес­сор не грел­ся и мало потреб­лял, то он был недо­ста­точ­но быст­рым для совре­мен­ных задач.
  • В про­цес­со­ры Intel было невоз­мож­но залезть и сде­лать что-то для себя. Вот выпус­ка­ет Intel свои про­цес­со­ры, и ты их либо ста­вишь в свои ком­пью­те­ры, либо нет. Нель­зя попро­сить ниче­го там под­кру­тить или дора­бо­тать под кон­крет­ный продукт. 

И вот в 2020 году Apple ска­за­ли: «Хва­тит!» и пере­шли на соб­ствен­ные про­цес­со­ры на базе архи­тек­ту­ры RISC. 

Система «всё в одном»

Раз Apple пере­шли на соб­ствен­ные про­цес­со­ры, ничто не меша­ло им сра­зу раз­ра­бо­тать систе­му «всё в одном» — это когда на одной пла­те сидит не толь­ко про­цес­сор, но и дру­гие полез­ные для рабо­ты компоненты:

  • соб­ствен­но, сам про­цес­сор, раз­де­лён­ный на несколь­ко ядер раз­но­го назна­че­ния (есть энер­го­эф­фек­тив­ные, есть мощные);
  • память;
  • про­цес­сор для графики;
  • кон­трол­ле­ры, USB, Thunderbolt и дру­гих про­то­ко­лов свя­зи с устройствами;
  • мно­го дру­гих вспо­мо­га­тель­ных вещей.

Всё это сидит рядом на одной пла­те и свя­за­но высо­ко­ско­рост­ны­ми кана­ла­ми. Дан­ные меж­ду про­цес­со­ром и памя­тью лета­ют быст­ро, а сама память подо­бра­на так, что­бы сов­па­дать по ско­ро­сти с процессором.

Почему процессоры Apple M1 такие быстрые Сле­ва под метал­ли­че­ской крыш­кой живут ядра про­цес­со­ра и дру­гие вспо­мо­га­тель­ные систе­мы. Два чипа спра­ва — моду­ли опе­ра­тив­ной памяти 

Что это даёт и какие созда­ёт проблемы: 

✅ Всё рабо­та­ет. Нет про­бле­мы, что память не сов­ме­сти­ма с про­цес­со­ром, а кон­трол­лер Thunderbolt не под­дер­жи­ва­ет шину PCI Express. Всё сра­зу со всем дружит. 

✅ Всё ком­пакт­но. Cисте­ма M1 по пло­ща­ди мень­ше спи­чеч­но­го короб­ка, а вся систем­ная пла­та ком­пью­те­ра на M1 по пло­ща­ди как неболь­шой смартфон. 

✅ Потреб­ля­ет мало энер­гии, бата­рея дер­жит долго.

❌ Ниче­го не обно­вишь. Память и нако­пи­те­ли впа­я­ны в пла­ту. Если со вре­ме­нем вам потре­бу­ет­ся перей­ти на более шуст­рый про­цес­сор или доба­вить памя­ти, при­дёт­ся поку­пать новый комп. 

❌ Слож­ный ремонт. Всё уже настоль­ко мини­а­тюр­ное и плот­но друг на дру­га поса­жен­ное, что в слу­чае полом­ки про­ще всё выбро­сить и купить новое, чем зани­мать­ся микропайкой.

Оптимизация софта под процессор

Что­бы реа­ли­зо­вать весь потен­ци­ал про­цес­со­ра, про­грам­ми­сты из Apple сде­ла­ли одно­вре­мен­но две вещи:

  1. Опти­ми­зи­ро­ва­ли опе­ра­ци­он­ную систе­му, кото­рая сра­зу уста­нав­ли­ва­ет­ся на все ком­пью­те­ры с новым про­цес­со­ром. Для раз­ра­бот­чи­ков это очень хоро­шо: мож­но не под­дер­жи­вать ста­рое желе­зо и сра­зу напи­сать опти­ми­зи­ро­ван­ный код для хоро­ше­го совре­мен­но­го железа. 
  2. Опти­ми­зи­ро­ва­ли весь встро­ен­ный софт, что­бы чело­век при запус­ке ком­пью­те­ра сра­зу ощу­щал ско­рость. Весь стан­дарт­ный пакет про­грамм Apple уже опти­ми­зи­ро­ван: Safari, Keynote, Pages и всё осталь­ное, что у вас уста­нов­ле­но, сра­зу рабо­та­ет быстро. 

Со ста­ры­ми про­грам­ма­ми такая про­бле­ма: они напи­са­ны для дру­гой архи­тек­ту­ры и не могут напря­мую запус­кать­ся на новом про­цес­со­ре. Что­бы решить про­бле­му, в Apple сде­ла­ли спе­ци­аль­ный пере­вод­чик, кото­рый на лету пере­во­дит с CISC на RISC. Пере­вод­чик рабо­та­ет в фоне, и поль­зо­ва­те­лю не нуж­но о нём думать. Боль­шин­ство ста­рых про­грамм про­сто работают. 

Правда ли M1 такой быстрый?

Когда вышли пер­вые моде­ли на базе M1, всех уди­ви­ло, насколь­ко он шуст­ро рабо­та­ет по срав­не­нию с преды­ду­щи­ми поко­ле­ни­я­ми ноут­бу­ков Apple.

Вот при­мер срав­не­ния базо­во­го ноут­бу­ка Macbook Air M1 и Macbook Pro 2017. В боль­шей части тестов M1 быст­рее, но отдель­ные про­грам­мы запус­ка­ют­ся медленнее:

Осо­бен­но поль­зо­ва­те­лей впе­чат­ли­ло, как быст­ро запус­ка­ют­ся род­ные про­грам­мы Apple — почти мгновенно:

Но всё это — искус­ствен­ные тесты. В жиз­ни нам не надо запус­кать все про­грам­мы одно­вре­мен­но или по десять раз в день вклю­чать и выклю­чать ноут­бук. Как в реальности?

А в реаль­но­сти так:

✅ Если про­грам­ма уже опти­ми­зи­ро­ва­на под M1, то она рабо­та­ет либо быст­рее, либо не мед­лен­нее, чем про­грам­ма на Intel. 

✅ ✅ При этом та же про­грам­ма, ско­рее все­го, будет съе­дать замет­но мень­ше бата­реи и мень­ше нагре­вать ноутбук. 

🤔 Если про­грам­ма ещё не опти­ми­зи­ро­ва­на под M1, то она рабо­та­ет либо так же, либо немно­го мед­лен­нее, чем на Intel. 

✅ Неко­то­рые виды вычис­ле­ний на M1 про­ис­хо­дят намно­го быст­рее (напри­мер, рабо­та с машин­ным обучением). 

✅ В целом интер­фейс немно­го более отзыв­чи­вый, а от ком­пью­те­ра есть ощу­ще­ние боль­шей ско­ро­сти рабо­ты. К это­му ощу­ще­нию быст­ро привыкаешь. 

❌ Неко­то­рый спе­ци­а­ли­зи­ро­ван­ный софт может не запу­стить­ся на M1 или рабо­тать некор­рект­но. И если раз­ра­бот­чи­ки ниче­го с этим не сде­ла­ют, так оно и останется.

❌ Как при любом обнов­ле­нии опе­ра­ци­он­ной систе­мы, часть ста­ро­го желе­за боль­ше не под­дер­жи­ва­ет­ся, драй­ве­ров нет. А отка­тить­ся на ста­рые опе­ра­ци­он­ки не полу­чит­ся, пото­му что новый про­цес­сор их не поддерживает. 

Переходить ли на M1 сейчас?

✅ Когда сто­ит переходить:

  • ваш ноут­бук мораль­но и тех­ни­че­ски устарел;
  • вам от него нуж­ны толь­ко базо­вые про­грам­мы типа «Хро­ма», почты, видео­кон­фе­рен­ции и офис­но­го пакета;
  • для вас в при­о­ри­те­те вре­мя авто­ном­ной рабо­ты и мобиль­ность, а не про­из­во­ди­тель­ность и про­фес­си­о­наль­ные задачи;
  • сто­и­мость ново­го ноут­бу­ка для вас несущественна. 

❌ Когда сто­ит подождать: 

  • вы посто­ян­но исполь­зу­е­те осо­бый про­фес­си­о­наль­ный софт и обо­ру­до­ва­ние, кото­рое ещё не под­дер­жи­ва­ет­ся новой опе­ра­ци­он­ной системой;
  • сто­и­мость обнов­ле­ния для вас существенна;
  • при­рост про­из­во­ди­тель­но­сти ком­пью­те­ра в 15% не сде­ла­ет вам погоды.

👉 В боль­шин­стве слу­ча­ев вам не нужен новый ноут­бук. Вам нуж­но отне­сти ста­рый ноут­бук в ремонт, что­бы ему про­чи­сти­ли ради­а­то­ры и вен­ти­ля­то­ры от пыли и коша­чьей шер­сти. Так­же будет полез­но сне­сти ненуж­ный софт, почи­стить дис­ки и, может быть, начи­сто пере­уста­но­вить систе­му. Это зада­ча на 2–3 часа, после чего ваш ноут будет летать. 

Сей­час мно­гие ком­па­нии нача­ли раз­ра­ба­ты­вать про­цес­со­ры с той же архи­тек­ту­рой, что и M1. Это зна­чит, что ско­ро появят­ся более быст­рые, более мощ­ные и более кру­тые про­цес­со­ры. Как толь­ко это про­изой­дёт, мы сно­ва раз­бе­рём­ся, как инже­не­ры это­го достиг­ли и какие трю­ки использовали.

Текст:

Миха­ил Полянин

Редак­ту­ра:

Мак­сим Ильяхов

Худож­ник:

Даня Бер­ков­ский

Кор­рек­тор:

Ири­на Михеева

Вёрст­ка:

Мария Дро­но­ва

Соц­се­ти:

Олег Веш­кур­цев