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

Почему процессоры 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. Это значит, что скоро появятся более быстрые, более мощные и более крутые процессоры. Как только это произойдёт, мы снова разберёмся, как инженеры этого достигли и какие трюки использовали.

Текст:

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

Редактура:

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

Художник:

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

Корректор:

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

Вёрстка:

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

Соцсети:

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

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Операции с векторами
Операции с векторами

Как сложить и перемножить векторы (и зачем).

medium
Собираем сайт-портфолио для фотографа

Используем CSS Grid.

easy
Как получить удалённый доступ к компьютеру

Разбор систем и подходов.

medium
Гит-словарик для начинающих программистов
Гит-словарик для начинающих программистов

Мёржим бранчи и коммитим реквесты

hard
JavaScript для новичков: чем опасны нестрогие типы данных
JavaScript для новичков: чем опасны нестрогие типы данных

В JavaScript есть удобная штука, которая может сильно вам навредить.

medium
Что такое Kotlin?
Что такое Kotlin

И зачем он андроид-разработчику.

easy
Асимметричное шифрование
Асимметричное шифрование

Сложное, но очень полезное.

medium
Как подготовить резюме для крупной компании?

Инструкция новичкам от разработчика из Яндекс.Практикума.

easy
Как устроены онлайн-кинотеатры: техническая сторона
Как устроены онлайн-кинотеатры: техническая сторона

Главное из подкаста «Запуск завтра».

easy
Карьера аналитика данных в 26 лет: Касперский, X5 и «Много лосося»
Карьера аналитика данных в 26 лет: Касперский, X5 и «Много лосося»

Поговорили с Антоном Леоновым, выпускником ВШЭ и ментором «Практикума».

easy
Карьерный путь: руководитель группы в лаборатории ИИ Сбера
Карьерный путь: руководитель группы в лаборатории ИИ Сбера

Разговор с Алексеем Васильевым: управление проектами, учёба в ШАД и разработка систем ИИ.

easy
Как отправить JSON-данные на сервер
Как отправить JSON-данные на сервер

Первый шаг на пути к облачному хранению данных.

medium
10 главных конструкций языка R
10 главных конструкций языка R

Язык для аналитиков и дата-сайентистов

easy
easy