Называется тип архитектуры процессора с минимальным набором команд

Обновлено: 21.11.2024

Эта страница или раздел являются незавершенными. Вы можете помочь вики, аккуратно внося в нее свой вклад.

Эта страница предназначена для объяснения некоторых различных типов наборов инструкций. Наборы инструкций перечислены, начиная с самого простого и заканчивая самым сложным набором инструкций.
См. также Исторические заметки о CISC и RISC.

Содержание

Тезис Черча-Тьюринга

Алан Тьюринг (1912–1954) оказал большое влияние на зарождение информатики. Тезис Черча-Тьюринга утверждает, что любой алгоритм, вычисляемый людьми (без ограничений по времени и памяти и без сбоев), может быть вычислен машиной Тьюринга.
Чтобы быть завершенным по Тьюрингу, машина должна иметь возможность загружать данные, изменять их в соответствии с набором правил и впоследствии сохранять их. Загрузка и сохранение значений не требуют пояснений, интересной частью является обработка.
Распространенные алгоритмы:

  • Логические функции: можно не заметить, но, например. мозги используют в повседневных задачах для принятия решений простые конечные автоматы, и каждый конечный автомат может быть выражен логическими функциями.
  • Сравнения: этот красный ярче, чем этот? Ответ: Да или Нет. См. пример выше. Это реализуется путем сложения или, скорее, вычитания. Может быть реализовано с помощью логических функций.
  • Умножение/деление: используется, напр. в случае применения весов. Может быть реализовано сложением и вычитанием, а сложение может быть реализовано логическими функциями, поэтому .
  • Интеграция/дифференциация. Любой физический закон может быть реализован с помощью интеграции и дифференцирования. Можно реализовать умножением или, точнее, делением, а можно реализовать арифметическими и логическими функциями.

Как вы могли заметить, все можно реализовать с помощью логических функций. Это важно: уметь выполнять любую логическую функцию означает быть сильным Черч-Тьюрингом.

Точнее, требуется только одна логическая функция, такая как NAND, с двумя входами и одним выходом. Можно найти и другие наборы «полных» логических функций, но NAND является наиболее распространенным.

Любая архитектура набора инструкций (ISA) — это Черч-Тьюринг.

Узкое место Флинна и оптимизм Фишера

М. Дж. Флинн (*1934) обнаружил в 1970 году очень интересный факт: если кто-то выбирает (загружает) только одну инструкцию за цикл, он никогда не получит более одной выполненной инструкции за цикл. (Это действительно для каждого физического ALU.)
J. А. Фишер (*1946) утверждал в 1984 г., что массивная (упакованная) структура данных может выполнять больше инструкций за цикл, чем одна.
Это станет важным, когда мы будем говорить о недостатках/преимуществах RISC/CISC.

Один набор инструкций

Так называемый окончательный компьютер с сокращенным набором инструкций (URISC) или компьютер с одним набором инструкций (OISC) программируется только одной инструкцией. Эта инструкция должна позволять принимать решения, перемещать данные, выполнять вычисления и переходить к различным целям в потоке инструкций. Это возможно только со сложной инструкцией.

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

Минимальный набор инструкций

Он определяется менее чем 32 инструкциями (на самом деле нельзя отличить MISC от RISC). В основном MISC представляют собой стековые машины. Из-за отсутствия функций безопасности и огромного размера программы эта ISA больше не используется, но ее инструкции включены в более сложные ISA. Для получения дополнительной информации обратитесь к компьютеру с минимальным набором команд. Этот тип набора инструкций использовался на некоторых ранних компьютерах, таких как ENIAC.

Сокращенный набор инструкций

RISC предоставляет быстрые и простые базовые инструкции, например. условные переходы, логические функции, сложение/вычитание, умножение/деление и т. д. Его среда выполнения проста, потому что RISC не должен предоставлять сложные инструкции. Это может вызвать проблемы с безопасностью. Часто возникает узкое место Флинна, потому что данные не могут быть обработаны в сложных структурах, поскольку ISA должна быть простой по определению. Примеры RISC ISA включают предыдущие поколения ARM и MIPS.

Сложный набор инструкций

CISC реализует простые и дополнительные сложные инструкции. В основном он поставляется с различными средами выполнения и функциями безопасности. Особенно должны быть названы потоковые расширения, такие как SSE. Они являются причиной того, что RISC-процессоры в настоящее время почти исчезли. Узкое место Флинна применимо, но с помощью потоковых расширений шанс уменьшить его влияние и переключиться на оптимизм Фишера быстро растет. Другие расширенные функции могут уменьшить доступ к памяти и, следовательно, вызвать простои ЦП.Очевидно, что преимущество архитектур CISC заключается в их возможностях, но эта сложность также является недостатком и может привести к серьезным проблемам с безопасностью, которые необходимо решать. Архитектуры CISC, такие как M68K или 6502, были распространены на заре вычислительной техники, когда технология оптимизации компиляторов была менее развитой. Все еще используемая архитектура CISC – x86 (включая x86_64).

Гибридный набор инструкций

Современные процессоры построены на основе гибридной архитектуры RISC-CISC. RISC-процессоры можно создавать проще и быстрее, но им не хватает расширенных инструкций CISC. Чтобы получить лучшее из обоих миров, создан гибрид. RISC используется в качестве ALU и обертывается средой CISC. Любая инструкция интерпретируется этим CISC и разбивается на одну или несколько подинструкций, называемых «микрокодами операций», для RISC. Кроме того, CISC-оболочка обеспечивает безопасность, а также стабильность и контроль операционной системы. В настоящее время только микроконтроллеры используют чистый RISC; любой другой ЦП является более или менее гибридным ЦП RISC-CISC.

Архитектура набора инструкций (ISA)

Архитектура набора инструкций (ISA) — это часть процессора, видимая программисту или автору компилятора. ISA служит границей между программным обеспечением и оборудованием. Мы кратко опишем наборы команд, используемые во многих современных микропроцессорах. ISA процессора можно описать с помощью 5 категорий:

Хранение операндов в ЦП Где хранятся операнды, кроме памяти? Количество явно именованных операндов Сколько операндов именовано в типичной инструкции. Расположение операнда Может ли любой операнд инструкции АЛУ быть расположен в памяти? Или все операнды должны храниться внутри ЦП? Операции Какие операции предусмотрены в ISA. Тип и размер операндов Каков тип и размер каждого операнда и как он указывается?

Из всего вышеперечисленного наиболее отличительным фактором является первый.

<ПР>
  • Стек. Операнды неявно находятся на вершине стека.
  • Аккумулятор. Один операнд неявно является аккумулятором.
  • Регистр общего назначения (GPR). Все операнды явно упоминаются, это либо регистры, либо ячейки памяти.
  • Давайте посмотрим на ассемблерный код

    во всех трех архитектурах:

    Стек Накопитель GPR
    НАЖАТЬ A ЗАГРУЗИТЬ A ЗАГРУЗИТЬ R1,A
    НАЖМИТЕ B ДОБАВИТЬ B ДОБАВИТЬ R1,B
    ДОБАВИТЬ СОХРАНИТЬ C< /TD> STORE R1,C
    POP C - -

    Не все процессоры можно четко отнести к одной из вышеуказанных категорий. У i8086 есть много инструкций, которые используют неявные операнды, хотя он имеет общий набор регистров. Другим примером является i8051, он имеет 4 банка GPR, но большинство инструкций должны иметь регистр A в качестве одного из своих операндов.
    Каковы преимущества и недостатки каждого из этих подходов?

    Стек

    Преимущества: простая модель оценки выражений (обратная полировка). Краткая инструкция.
    Недостатки: доступ к стеку невозможен. Это затрудняет создание эффективного кода. К самому стеку обращаются при каждой операции, и он становится узким местом.

    Накопитель

    Преимущества: Краткие инструкции.
    Недостатки. Аккумулятор — это только временное хранилище, поэтому трафик памяти при таком подходе самый высокий.

    Преимущества: упрощает генерацию кода. Данные могут храниться в течение длительного времени в регистрах.
    Недостатки: все операнды должны быть названы, что приводит к более длинным инструкциям.

    Раньше ЦП относились к первым двум типам, но за последние 15 лет все ЦП были процессорами GPR. Две основные причины заключаются в том, что регистры быстрее, чем память, и чем больше данных может храниться внутри ЦП, тем быстрее будет работать программа. Другая причина заключается в том, что компилятору проще использовать регистры.

    Компьютер с сокращенным набором команд (RISC)

    Как мы упоминали ранее, большинство современных процессоров относятся к типу GPR (регистр общего назначения). Несколько примеров таких процессоров: IBM 360, DEC VAX, Intel 80x86 и Motorola 68xxx. Но хотя эти ЦП были явно лучше, чем предыдущие ЦП на основе стека и аккумулятора, им все еще не хватало нескольких областей:

    <ПР>
  • Инструкции были разной длины от 1 байта до 6-8 байтов. Это вызывает проблемы с предварительной выборкой и конвейерной обработкой инструкций.
  • Инструкции ALU (арифметико-логическое устройство) могут иметь операнды, которые являются ячейками памяти. Поскольку количество циклов, необходимых для доступа к памяти, варьируется, меняется и вся инструкция. Это не очень хорошо для разработчиков компиляторов, конвейерной обработки и множественных проблем.
  • Большинство инструкций ALU имели только 2 операнда, где один из операндов также является адресатом.Это означает, что этот операнд уничтожается во время операции или его нужно где-то сохранить раньше.
  • Таким образом, в начале 80-х была представлена ​​идея RISC. Проект SPARC был начат в Беркли, а проект MIPS — в Стэнфорде. RISC расшифровывается как «Компьютер с сокращенным набором инструкций». ISA состоит из инструкций одинакового размера, обычно 32 бита. Таким образом, они могут быть предварительно загружены и успешно конвейеризированы. Все инструкции ALU имеют 3 операнда, которые являются только регистрами. Доступ к памяти осуществляется только через явные инструкции LOAD/STORE.
    Таким образом, C = A + B будет собран как:

    Хотя для этого требуется 4 инструкции, мы можем повторно использовать значения в регистрах.

    Почему эта архитектура называется RISC? Что в нем уменьшено?
    Ответ заключается в том, что для того, чтобы сделать все инструкции одинаковой длины, количество битов, используемых для кода операции, уменьшается. Таким образом, предоставляется меньше инструкций. Инструкции, которые были выброшены, — это менее важные строковые и двоично-десятичные операции. Фактически, теперь, когда доступ к памяти ограничен, не существует нескольких видов инструкций MOV или ADD. Таким образом, более старая архитектура называется CISC (Complete Instruction Set Computer). Архитектуры RISC также называются архитектурами LOAD/STORE.

    Количество регистров в RISC обычно составляет 32 или более. Первый RISC-процессор MIPS 2000 имеет 32 GPR по сравнению с 16 в архитектуре 68xxx и 8 в архитектуре 80x86. Единственным недостатком RISC является размер кода. Обычно требуется больше инструкций, а короткие инструкции (POP, PUSH) — пустая трата времени.

    Почему же до сих пор разрабатываются процессоры CISC? Почему Intel тратит время и деньги на производство Pentium II и Pentium III?
    Ответ прост, обратная совместимость. IBM-совместимый ПК является самым распространенным компьютером в мире. Intel требовался ЦП, который мог бы запускать все приложения, находящиеся в руках более 100 миллионов пользователей. С другой стороны, Motorola, создавшая серию 68xxx, которая использовалась в Macintosh, совершила переход и вместе с IBM и Apple создала Power PC (PPC) с RISC-процессором, который устанавливается в новых Power Mac. На данный момент Intel и производители ПК зарабатывают больше денег, но с учетом того, что Microsoft также играет в области RISC (Windows NT работает на платформе Compaq Alpha), а с обещаниями Java будущее CISC вообще не ясно.

    Важный урок, который можно извлечь из этого, заключается в том, что превосходные технологии являются важным фактором в компьютерной индустрии, но также важны маркетинг и цена (если не больше).

    Умножение двух чисел в памяти
    Справа представлена ​​диаграмма, представляющая схему хранения для обычного компьютера. Основная память разделена на ячейки, пронумерованные от (строка) 1: (столбец) 1 до (строка) 6: (столбец) 4. Исполнительный блок отвечает за выполнение всех вычислений. Однако исполнительный блок может работать только с данными, загруженными в один из шести регистров (A, B, C, D, E или F). Предположим, мы хотим найти произведение двух чисел, одно из которых хранится в ячейке 2:3, а другое — в ячейке 5:2, а затем сохранить произведение обратно в ячейку 2:3.

    Подход CISC
    Основной целью архитектуры CISC является выполнение задачи за минимально возможное количество сборочных линий. Это достигается созданием аппаратного обеспечения процессора, способного понимать и выполнять ряд операций. Для этой конкретной задачи процессор CISC должен быть подготовлен со специальной инструкцией (мы назовем ее «MULT»). При выполнении эта инструкция загружает два значения в отдельные регистры, перемножает операнды в исполнительном блоке, а затем сохраняет произведение в соответствующем регистре. Таким образом, всю задачу умножения двух чисел можно выполнить одной инструкцией:

    MULT — это так называемая «сложная инструкция». Он работает непосредственно с банками памяти компьютера и не требует от программиста явного вызова каких-либо функций загрузки или сохранения. Это очень похоже на команду на языке более высокого уровня. Например, если мы допустим, что "a" представляет значение 2:3, а "b" представляет значение 5:2, то эта команда идентична оператору C "a = a * b."

    Одно из основных преимуществ этой системы заключается в том, что компилятору требуется очень мало усилий для преобразования оператора языка высокого уровня в язык ассемблера. Поскольку длина кода относительно мала, для хранения инструкций требуется очень мало оперативной памяти. Акцент делается на встраивании сложных инструкций непосредственно в аппаратное обеспечение.

    Подход RISC
    Процессоры RISC используют только простые инструкции, которые могут быть выполнены за один такт. Таким образом, описанную выше команду «MULT» можно разделить на три отдельные команды: «LOAD», которая перемещает данные из банка памяти в регистр, «PROD», которая находит произведение двух операндов, расположенных в регистрах, и « STORE», который перемещает данные из регистра в банки памяти.Чтобы выполнить точную серию шагов, описанных в подходе CISC, программисту потребуется закодировать четыре строки ассемблера:

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

    < TD>Низкое количество циклов в секунду,
    большой размер кода
    CISC RISC
    Упор на оборудование Упор на программное обеспечение
    Включает многотактовые
    сложные инструкции
    Однотактовые,
    уменьшенные только инструкция
    Память в память:
    "LOAD" и "STORE"
    включены в инструкции
    Регистрация для регистрации :
    «ЗАГРУЗИТЬ» и «СОХРАНИТЬ»
    являются независимыми инструкциями
    Небольшой размер кода,
    большое количество циклов в секунду
    Транзисторы, используемые для хранения
    сложных инструкций
    Затрачивает больше транзисторов
    в регистрах памяти
    Однако стратегия RISC также дает некоторые очень важные преимущества. Поскольку для выполнения каждой инструкции требуется только один тактовый цикл, вся программа будет выполняться примерно за то же время, что и многотактовая команда «MULT». Эти «сокращенные инструкции» RISC требуют меньше транзисторов аппаратного пространства, чем сложные инструкции, оставляя больше места для регистров общего назначения. Поскольку все инструкции выполняются за одинаковое время (т. е. за один такт), возможна конвейерная обработка.

    Разделение инструкций "LOAD" и "STORE" фактически уменьшает объем работы, которую должен выполнять компьютер. После выполнения команды «MULT» в стиле CISC процессор автоматически стирает регистры. Если один из операндов необходимо использовать для другого вычисления, процессор должен повторно загрузить данные из банка памяти в регистр. В RISC операнд остается в регистре до тех пор, пока на его место не будет загружено другое значение.

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

    Подход CISC пытается свести к минимуму количество инструкций на программу, жертвуя количеством циклов на инструкцию. RISC делает наоборот, сокращая количество циклов на инструкцию за счет количества инструкций на программу.

    Препятствия RISC
    Несмотря на преимущества обработки на основе RISC, чипам RISC потребовалось более десяти лет, чтобы закрепиться в коммерческом мире. Во многом это было связано с отсутствием поддержки программного обеспечения.

    Хотя в линейке Power Macintosh от Apple использовались микросхемы на основе RISC, а Windows NT была совместима с RISC, Windows 3.1 и Windows 95 разрабатывались с учетом процессоров CISC. Многие компании не хотели рисковать с появляющейся технологией RISC. Без коммерческого интереса разработчики процессоров не могли производить микросхемы RISC в достаточно больших объемах, чтобы сделать их цену конкурентоспособной.

    Еще одной серьезной неудачей стало присутствие Intel. Хотя их CISC-чипы становились все более громоздкими и трудными в разработке, у Intel были ресурсы, необходимые для разработки и производства мощных процессоров. Хотя чипы RISC могли превзойти усилия Intel в определенных областях, различия были недостаточно велики, чтобы убедить покупателей изменить технологии.

    ARM — ведущий разработчик процессоров для телефонов, Intel – известная компания в области ПК. Оба производят процессоры, но в чем разница?

    Объяснение архитектуры процессора

    Центральный процессор (ЦП) — это «мозг» вашего устройства, но он не совсем умный. ЦП работает только тогда, когда ему даны очень специфические инструкции — соответственно называемые набором инструкций — которые сообщают процессору о перемещении данных между регистрами и памятью или о выполнении вычислений с использованием определенного исполнительного блока (например, умножения или вычитания). Для уникальных аппаратных блоков ЦП требуются разные инструкции. Они имеют тенденцию масштабироваться с более сложными и мощными процессорами. Желаемые инструкции также могут использоваться при проектировании оборудования, как мы вскоре увидим.

    Приложения, работающие на вашем телефоне, не написаны в инструкциях процессора. это было бы безумием с сегодняшними большими кросс-платформенными приложениями, чем работать на множестве чипов. Вместо этого приложения, написанные на различных языках программирования более высокого уровня (например, Java или C++), соответствуют определенным наборам инструкций, чтобы они правильно работали на процессорах Arm, x86 или других. Эти инструкции далее декодируются в операции микрокода внутри ЦП, что требует дискового пространства и мощности. Если вам нужен процессор с наименьшим энергопотреблением, первостепенное значение имеет простота набора инструкций.Однако более высокая производительность может быть достигнута за счет более сложного оборудования и инструкций за счет энергопотребления. Это фундаментальное различие между историческими подходами Arm и Intel к проектированию ЦП.

    Arm использует RISC (вычисления с сокращенным набором инструкций), а Intel (x86) — CISC (сложные вычисления с набором инструкций). Инструкции процессора Arm достаточно атомарны, с очень тесной корреляцией между количеством инструкций и микрооперациями. CISC, для сравнения, предлагает гораздо больше инструкций, многие из которых выполняют несколько операций (например, оптимизированные вычисления и перемещение данных). Это приводит к повышению производительности, но увеличивает энергопотребление при расшифровке этих сложных инструкций.

    Эта связь между инструкциями и конструкцией аппаратного обеспечения процессора и составляет основу архитектуры ЦП. Таким образом, архитектуры ЦП могут быть разработаны для различных целей, таких как экстремальная обработка чисел, низкое энергопотребление или минимальная площадь кремния. Это ключевое отличие при сравнении Arm и x86 с точки зрения процессоров, поскольку первый основан на более низком энергопотреблении, наборе инструкций и аппаратном обеспечении.

    Современные 64-разрядные архитектуры ЦП

    Сегодня 64-разрядные архитектуры широко распространены на смартфонах и ПК, но так было не всегда. Телефоны появились только в 2012 году, примерно через десять лет после ПК. Короче говоря, 64-битные вычисления используют регистры и адреса памяти, достаточно большие для использования 64-битных (1 и 0) длинных типов данных. Помимо совместимого оборудования и инструкций, вам также потребуется 64-разрядная операционная система, например Android.

    Ветераны отрасли, возможно, помнят шумиху, когда Apple представила свой первый 64-разрядный процессор раньше конкурентов Android. Переход на 64-разрядные технологии не изменил повседневные вычисления. Однако важно эффективно выполнять математические операции при использовании высокоточных чисел с плавающей запятой. 64-битные регистры также повышают точность 3D-рендеринга, скорость шифрования и упрощают адресацию более 4 ГБ ОЗУ.

    ПК перешли на 64-разрядную версию задолго до появления смартфонов, но современную архитектуру x86-64 (также известную как x64) придумала не Intel. Эта награда принадлежит объявлению AMD от 1999 года, которое модернизировало существующую архитектуру Intel x86. Альтернативная архитектура Intel IA64 Itanium отошла на второй план.

    Arm представила 64-разрядную архитектуру ARMv8 в 2011 году. Вместо расширения набора 32-разрядных инструкций Arm предлагает чистую 64-разрядную реализацию. Для этого в архитектуре ARMv8 используются два состояния выполнения: AArch32 и AArch64. Как следует из названий, один предназначен для запуска 32-битного кода, а другой — для 64-битного. Прелесть дизайна ARM заключается в том, что процессор может плавно переключаться из одного режима в другой во время обычного выполнения. Это означает, что декодер для 64-битных инструкций представляет собой новую конструкцию, которая не нуждается в поддержке совместимости с 32-битной эпохой, но процессор в целом остается обратно совместимым. Однако Arm указала, что будущие процессоры ARMv9 Cortex-A будут 64-разрядными только к 2023 году, что отключит поддержку старых 32-разрядных приложений и операционных систем на этих процессорах следующего поколения. Фактически, небольшие процессоры Cortex-A510 и мощные процессоры Cortex-X2 2021 года уже являются только 64-разрядными.

    Гетерогенные вычисления от Arm победили на мобильных устройствах

    Различия в архитектуре, рассмотренные выше, частично объясняют текущие успехи и проблемы, с которыми сталкиваются два чипа-гиганта. Подход Arm к низкому энергопотреблению идеально подходит для требований к расчетной тепловой мощности (TDP) 3,5 Вт для мобильных устройств, при этом производительность также увеличивается, чтобы соответствовать чипам Intel для ноутбуков. Между тем, типичные Core i7 и i9 с TDP 100 Вт, наряду с конкурирующими чипсетами от AMD, выигрывают в серверах и высокопроизводительных настольных компьютерах, но исторически с трудом сокращаются до уровня ниже 5 Вт. См. сомнительную линейку Atom.

    Конечно, мы не должны забывать о той роли, которую процессы производства кремния сыграли в значительном повышении энергоэффективности за последнее десятилетие. Вообще говоря, транзисторы процессора меньшего размера потребляют меньше энергии. Intel застряла, пытаясь выйти за пределы своего внутреннего 14-нм техпроцесса 2014 года, а 10-нм чипы начнут выпускаться в 2021 году. 2021 года. Это было достигнуто просто за счет конкуренции между производителями Samsung и TSMC. Это также частично помогло AMD сократить отставание от своего конкурента x86-64 с новейшими 7-нанометровыми процессорами Ryzen.

    Однако одна уникальная особенность архитектуры ARM сыграла особенно важную роль в поддержании низкого TDP для мобильных приложений — гетерогенные вычисления. Идея достаточно проста: создать архитектуру, позволяющую различным частям ЦП (с точки зрения производительности и мощности) работать вместе для повышения эффективности.

    Возможность Arm распределять рабочие нагрузки между высокопроизводительными и низкопроизводительными ядрами ЦП является благом для повышения энергоэффективности

    Первая попытка Arm реализовать эту идею была сделана big.LITTLE в 2011 году с большим ядром Cortex-A15 и маленьким ядром Cortex-A7. Идея использования более крупных неупорядоченных ядер ЦП для ресурсоемких приложений и энергоэффективных ЦП с последовательностью для фоновых задач сегодня воспринимается пользователями смартфонов как нечто само собой разумеющееся, но потребовалось несколько попыток, чтобы сгладить формулу. Arm построила эту идею с DynamIQ и архитектурой ARMAv8.2 в 2017 году, позволяя разным ЦП находиться в одном кластере, совместно используя ресурсы памяти для гораздо более эффективной обработки. DynamIQ также поддерживает схему ЦП 2+6, которая все чаще встречается в чипах среднего класса.

    Конкурирующие чипы Intel Atom, не имеющие разнородных вычислений, не могли сравниться с балансом производительности и эффективности Arm. Только в 2020 году проекты Intel Foveros, Embedded Multi-die Interconnect Bridge (EMIB) и Hybrid Technology привели к созданию конкурирующего чипа — 10-нм Lakefield. Lakefield сочетает в себе одно высокопроизводительное ядро ​​Sunny Cove с четырьмя энергоэффективными ядрами Tremont, а также графику и функции подключения. Однако даже этот пакет предназначен для подключенных ноутбуков с TDP 7 Вт, что все еще слишком много для смартфонов.

    Сегодня в сегменте рынка ноутбуков с TDP менее 10 Вт все чаще идет борьба между Arm и x86. Переход Apple на собственные специализированные чипы Arm для Mac — яркий пример растущей производительности архитектуры Arm, отчасти благодаря гетерогенным вычислениям, а также пользовательским оптимизациям, сделанным Apple.

    Пользовательские ядра Arm и наборы инструкций

    Еще одно важное различие между Arm и Intel заключается в том, что последняя контролирует весь процесс от начала до конца и продает свои чипы напрямую. Арм просто продает лицензии. Intel полностью сохраняет свою архитектуру, конструкцию ЦП и даже производство. Для сравнения, Arm предлагает множество продуктов таким партнерам, как Apple, Samsung и Qualcomm. Они варьируются от готовых конструкций ядер ЦП, таких как Cortex-A78 и A710, конструкций, созданных в партнерстве в рамках программы Arm CXC, и лицензий на нестандартную архитектуру, которые позволяют таким компаниям, как Apple и Samsung, создавать собственные ядра ЦП и даже вносить коррективы. набор инструкций.

    Создание нестандартных процессоров — это дорогостоящий и сложный процесс, но правильное выполнение может привести к впечатляющим результатам. Процессоры Apple демонстрируют, как специальное аппаратное обеспечение и инструкции приближают производительность Arm к массовому x86-64 и даже выше. Хотя ядра Mongoose от Samsung оказались менее успешными и со временем сели.

    Apple намерена постепенно заменять процессоры Intel в своих продуктах Mac на собственный кремний на базе Arm. Apple M1 — первый процессор в этой области, который используется в новейших моделях MacBook Air, Pro и Mac Mini. M1 может похвастаться некоторыми впечатляющими улучшениями производительности, что говорит о том, что высокопроизводительные ядра Arm способны работать с x86-64 в более ресурсоемких вычислительных сценариях. Однако помните, что Apple сравнивает процессоры класса ноутбуков, а не настольных компьютеров.

    Совместимость программного обеспечения

    Как мы упоминали ранее, приложения и программное обеспечение должны быть скомпилированы для архитектуры ЦП, на которой они работают. Исторический брак между ЦП и экосистемами (такими как Android на Arm и Windows на x86) означал, что совместимость никогда не была проблемой, поскольку приложениям не нужно было работать на нескольких платформах и архитектурах. Однако рост числа кроссплатформенных приложений и операционных систем, работающих на многопроцессорных архитектурах, меняет эту картину.

    Компьютеры Mac на базе Arm от Apple, Chrome OS от Google и Windows на Arm от Microsoft — все это современные примеры, когда программное обеспечение должно работать как на архитектуре Arm, так и на архитектуре x86-64. Компиляция собственного программного обеспечения для обоих вариантов — это вариант для новых приложений и разработчиков, желающих инвестировать в перекомпиляцию. Чтобы заполнить пробелы, эти платформы также полагаются на эмуляцию кода. Другими словами, перевод кода, скомпилированного для одной архитектуры ЦП, для работы на другой. Это менее эффективно и снижает производительность по сравнению с собственными приложениями, но в настоящее время возможна хорошая эмуляция, чтобы гарантировать, что приложения работают.

    После многих лет разработки эмуляция Windows on Arm находится в довольно хорошем состоянии для большинства приложений. Приложения для Android по большей части также работают на Intel Chromebook прилично. У Apple есть собственный инструмент перевода под названием Rosetta 2, который также поддерживает устаревшие приложения Mac. Но все три имеют снижение производительности по сравнению с приложениями, скомпилированными в собственном коде.

    ARM против x86: последнее слово

    За последнее десятилетие соперничества между Arm и x86 Arm победила как выбор для устройств с низким энергопотреблением, таких как смартфоны. В настоящее время эта архитектура также успешно используется в ноутбуках и других устройствах, где требуется повышенная энергоэффективность. Несмотря на проигрыш в телефонах, усилия Intel в области маломощных устройств с годами улучшились: гибридные идеи, такие как Lakefield и Alder Lake, теперь имеют гораздо больше общего с традиционными процессорами Arm, используемыми в телефонах.

    Тем не менее, Arm и x86 существенно отличаются с инженерной точки зрения, и у них по-прежнему есть сильные и слабые стороны. Тем не менее, потребительские варианты использования этих двух архитектур становятся размытыми, поскольку экосистемы все больше поддерживают обе архитектуры. Тем не менее, хотя в сравнении Arm и x86 есть пересечение, именно Arm, несомненно, останется предпочтительной архитектурой для индустрии смартфонов в обозримом будущем. Эта архитектура демонстрирует большие перспективы для вычислений и повышения эффективности на уровне ноутбуков.

    Читайте также: