Введение

64-битная версия архитектуры x86

x86 64 (также известная как x64, x86 64, AMD64 и Intel 64) — 64-битная версия набора инструкций x86, впервые анонсированная в 1999 году. Она представила два новых режима работы: 64-битный режим и режим совместимости, а также новый 4-уровневый режим страничной организации памяти. Благодаря 64-битному режиму и новому режиму страничной организации, она поддерживает значительно больший объем виртуальной и физической памяти, чем это было возможно на её 32-битных предшественниках, позволяя программам хранить большие объемы данных в памяти. x86 64 также расширяет регистры общего назначения до 64 бит и увеличивает их количество с 8 (некоторые из которых имели ограниченную или фиксированную функциональность, например, для управления стеком) до 16 (полностью универсальных), а также предоставляет множество других улучшений. Арифметика с плавающей точкой поддерживается посредством обязательных инструкций SSE2, а регистры в стиле x87/MMX обычно не используются (но остаются доступными даже в 64-битном режиме); вместо этого используется набор из 16 векторных регистров, каждый объемом 128 бит. (Каждый регистр может хранить одно или два числа двойной точности, от одного до четырех чисел одинарной точности или различные целочисленные форматы.) В 64-битном режиме инструкции модифицированы для поддержки 64-битных операндов и 64-битного режима адресации. Режим совместимости, определенный в архитектуре, позволяет 16- и 32-битным пользовательским приложениям работать без изменений, сосуществуя с 64-битными приложениями, если 64-битная операционная система их поддерживает. Поскольку полные 16- и 32-битные наборы инструкций x86 остаются реализованными в аппаратном обеспечении без какой-либо промежуточной эмуляции, эти устаревшие исполняемые файлы могут работать с незначительной или отсутствующей потерей производительности, в то время как новые или модифицированные приложения могут использовать новые возможности конструкции процессора для повышения производительности. Кроме того, процессор, поддерживающий x86 64, по-прежнему запускается в реальном режиме для полной обратной совместимости с 8086, как и процессоры x86, поддерживающие защищенный режим, начиная с 80286. Оригинальная спецификация, разработанная AMD и выпущенная в 2000 году, была реализована AMD, Intel и VIA. Микроархитектура AMD K8, в процессорах Opteron и Athlon 64, первой реализовала её. Это было первое значительное дополнение к архитектуре x86, разработанное компанией, отличной от Intel. Intel была вынуждена последовать этому примеру и представила модифицированное семейство NetBurst, которое было программно совместимо со спецификацией AMD. VIA Technologies представила x86 64 в своей архитектуре VIA Isaiah с VIA Nano. Архитектура x86 64 была быстро принята для настольных и портативных персональных компьютеров и серверов, которые обычно настраивались на 16 ГиБ (гибибайт) памяти или более. Она фактически заменила прекращенную архитектуру Intel Itanium (ранее IA 64), которая первоначально предназначалась для замены архитектуры x86. x86 64 и Itanium несовместимы на уровне набора инструкций, и операционные системы и приложения, скомпилированные для одной архитектуры, не могут работать на другой архитектуре нативно.

История

AMD64 (также упоминается AMD в своей литературе и документации как «AMD 64-bit Technology» и «AMD x86-64 Architecture») был создан как альтернатива радикально отличающейся архитектуре IA-64, разработанной Intel и Hewlett Packard, которая была несовместима с IA-32, 32-битной версией архитектуры x86. AMD впервые объявила о AMD64 в 1999 году, а полная спецификация стала доступна в августе 2000 года. Поскольку AMD никогда не приглашали участвовать в разработке архитектуры IA-64 и получение лицензии казалось маловероятным, AMD с самого начала позиционировала архитектуру AMD64 как эволюционный способ добавления 64-битных вычислительных возможностей к существующей архитектуре x86 с сохранением поддержки устаревшего 32-битного кода x86, в отличие от подхода Intel к созданию совершенно новой 64-битной архитектуры, полностью несовместимой с x86, – IA-64. Первый процессор на базе AMD64, Opteron, был выпущен в апреле 2003 года.

Реализация

Процессоры AMD, использующие архитектуру AMD64, включают Opteron, Athlon 64, Athlon 64 X2, Athlon 64 FX, Athlon II (с добавлением "X2", "X3" или "X4" для обозначения количества ядер, а также модели XLT), Turion 64, Turion 64 X2, Sempron (шаг "Palermo" E6 и все модели "Manila"), Phenom (с добавлением "X3" или "X4" для обозначения количества ядер), Phenom II (с добавлением "X2", "X3", "X4" или "X6" для обозначения количества ядер), FX, Fusion/APU и Ryzen/Epyc.

Ограничения операционной системы

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

Данные о физическом адресном пространстве

Текущие процессоры AMD64 поддерживают физическое адресное пространство до 256 терабайт оперативной памяти, или 256 ТиБ. Операционная система может накладывать дополнительные ограничения на объем доступной или поддерживаемой оперативной памяти. Подробности об этом приведены в разделе "Совместимость и характеристики операционной системы" данной статьи.

Длинный режим

Длинный режим – это основной режим работы, для которого изначально была разработана данная архитектура; он представляет собой комбинацию 64-битного режима процессора и объединенного 32-битного и 16-битного режима совместимости. Он используется 64-битными операционными системами. В 64-битной операционной системе 64-битные программы выполняются в 64-битном режиме, а 32-битные и 16-битные приложения в защищенном режиме (которые не нуждаются в использовании реального режима или виртуального режима 8086 для выполнения в любой момент времени) выполняются в режиме совместимости. Программы, работающие в реальном режиме, и программы, использующие виртуальный режим 8086 в любой момент времени, не могут быть запущены в длинном режиме, если эти режимы не эмулированы программным обеспечением. (назван в честь реки Ямхилл в долине Вилламетт штата Орегон). После нескольких лет отрицания своего существования Intel объявила на конференции IDF в феврале 2004 года, что проект действительно ведется. Председатель Intel в то время, Крейг Барретт, признал, что это был один из их наиболее плохо хранимых секретов. Название, используемое Intel для этого набора инструкций, несколько раз менялось. Название, использованное на IDF, было CT (предположительно, от Clackamas Technology, другого кодового названия, связанного с рекой в Орегоне); через несколько недель они начали называть его IA 32e (для расширений IA 32), а в марте 2004 года представили «официальное» название EM64T (Extended Memory 64 Technology – технология расширенной 64-битной памяти). В конце 2006 года Intel начала использовать название Intel 64 для своей реализации, что соответствует использованию AMD названия AMD64. Первым процессором, реализовавшим Intel 64, был многосокетный процессор Xeon с кодовым названием Nocona, выпущенный в июне 2004 года. В отличие от него, первоначальные чипы Prescott (февраль 2004 года) не поддерживали эту функцию. Впоследствии Intel начала продавать процессоры Pentium 4 с поддержкой Intel 64, использующие ревизию E0 ядра Prescott, продаваемые на OEM-рынке как Pentium 4, модель F. Ревизия E0 также добавляет eXecute Disable (XD) (название Intel для бита NX) в Intel 64 и была включена в текущий на тот момент процессор Xeon с кодовым названием Irwindale. Официальный запуск Intel 64 (тогда под названием EM64T) в основных настольных процессорах был осуществлен с помощью степпинга N0 Prescott 2M. Первым мобильным процессором Intel, реализующим Intel 64, является версия Merom процессора Core 2, выпущенная 27 июля 2006 года. Ни один из предыдущих процессоров Intel для ноутбуков (Core Duo, Pentium M, Celeron M, Mobile Pentium 4) не поддерживает Intel 64.

Реализация

Процессоры Intel, реализующие архитектуру Intel64, включают в себя Pentium 4 F серии/5x1 серии, 506 и 516, модели Celeron D 3x1, 3x6, 355, 347, 352, 360 и 365, а также все последующие модели Celeron, все модели Xeon начиная с "Nocona", все модели процессоров Pentium Dual Core начиная с "Merom 2M", Atom 230, 330, D410, D425, D510, D525, N450, N455, N470, N475, N550, N570, N2600 и N2800, все версии Pentium D, Pentium Extreme Edition, Core 2, Core i9, Core i7, Core i5 и Core i3, а также процессоры Xeon Phi серии 7200.

Различия между AMD64 и Intel 64

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

Более старые варианты

Процессоры AMD64 до ревизии F (отличающиеся переходом с памяти DDR на DDR2 и новыми разъемами AM2, F и S1) 2006 года не поддерживали инструкцию CMPXCHG16B, являющуюся расширением инструкции CMPXCHG8B, присутствующей в большинстве процессоров после 80486. Подобно CMPXCHG8B, CMPXCHG16B позволяет выполнять атомарные операции над окта-словами (128-битными значениями). Это полезно для параллельных алгоритмов, использующих сравнение и обмен данными размером больше указателя, что часто встречается в алгоритмах без блокировок и ожидания. Без CMPXCHG16B необходимо использовать обходные решения, такие как критические секции или альтернативные подходы без блокировок. Отсутствие этой инструкции также не позволяло 64-битным версиям Windows до Windows 8.1 иметь адресное пространство пользовательского режима больше 8 ТиБ. 64-битная версия Windows 8.1 требует наличия этой инструкции. Ранние процессоры AMD64 и Intel 64 не поддерживали инструкции LAHF и SAHF в 64-битном режиме. AMD добавила эти инструкции (также в 64-битном режиме) в свои процессоры с техпроцессом 90 нм (ревизия D), начиная с Athlon 64 в октябре 2004 года. Intel добавила эти инструкции в октябре 2005 года в ревизиях 0F47h и более поздних версиях NetBurst. 64-битная версия Windows 8.1 требует этой функции. Эта функция необходима во всех версиях Windows 8. Ранние реализации Intel 64 имели 36-битное (64 ГиБ) физическое адресное пространство памяти, в то время как оригинальные реализации AMD64 – 40-битное (1 ТиБ). Intel впервые использовала 40-битное физическое адресное пространство в процессоре Xeon MP (Potomac), выпущенном 29 марта 2005 года. Эта разница не влияет на видимую пользователю ISA. В 2007 году Opteron на базе AMD 10h стал первым процессором, предоставившим 48-битное (256 ТиБ) физическое адресное пространство. Физическое адресное пространство Intel 64 было расширено до 44 бит (16 ТиБ) в Nehalem EX в 2010 году и до 46 бит (64 ТиБ) в Sandy Bridge E в 2011 году. С процессорами Ice Lake 3-го поколения Xeon Scalable Intel увеличила виртуальное адресное пространство до 57 бит (128 ПиБ) и физическое до 52 бит (4 ПиБ) в 2021 году, что потребовало 5-уровневой организации страниц. В следующем году AMD64 добавила аналогичную поддержку в процессоры EPYC 4-го поколения (Genoa). Несерверные процессоры дольше сохраняют меньшие адресные пространства.

Усыновление

В суперкомпьютерах, отслеживаемых рейтингом TOP500, появление 64-битных расширений для архитектуры x86 позволило 64-битным процессорам x86 от AMD и Intel заменить большинство ранее использовавшихся в таких системах архитектур RISC (включая PA RISC, SPARC, Alpha и другие), а также 32-битные x86, хотя сама Intel изначально безуспешно пыталась заменить x86 новой несовместимой 64-битной архитектурой в процессоре Itanium. По состоянию на 2023 год суперкомпьютер HPE EPYC под названием Frontier занимает первое место. Первый суперкомпьютер на базе ARM появился в списке в 2018 году, а в последние годы значительную роль в производительности также стали играть сопроцессоры, использующие не процессорную архитектуру (GPGPU). В суперкомпьютере Tianhe 2, наряду с процессорами x86 64, используются и сопроцессоры Intel Xeon Phi "Knights Corner", реализующие подмножество x86 64 с некоторыми векторными расширениями.

Совместимость и характеристики операционной системы

Следующие операционные системы и выпуски поддерживают архитектуру x86-64 в длинном режиме.

DragonFly BSD

Предварительные работы по инфраструктуре для порта x86 64 начались в феврале 2004 года. Эта разработка впоследствии была приостановлена. Разработка возобновилась в июле 2007 года и продолжалась в рамках Google Summer of Code 2008 и SoC 2009. Первым официальным релизом с поддержкой x86 64 стала версия 2.4.

FreeBSD

FreeBSD впервые добавила поддержку x86-64 под названием "amd64" как экспериментальную архитектуру в 5.1 RELEASE в июне 2003 года. Она была включена в качестве стандартной архитектуры дистрибутива с версии 5.2 RELEASE в январе 2004 года. С тех пор FreeBSD признала её платформой первого уровня (Tier 1). Версия 6.0 RELEASE устранила некоторые особенности при запуске исполняемых файлов x86 под amd64, и большинство драйверов работают аналогично архитектуре x86. В настоящее время ведётся работа над более полной интеграцией прикладного бинарного интерфейса (ABI) x86, подобно тому, как сейчас реализована совместимость с 32-битным ABI Linux.

NetBSD

Поддержка архитектуры x86-64 была впервые внесена в дерево исходного кода NetBSD 19 июня 2001 года. Начиная с NetBSD 2.0, выпущенного 9 декабря 2004 года, NetBSD/amd64 является полностью интегрированным и поддерживаемым портом. 32-битный код по-прежнему поддерживается в 64-битном режиме, с использованием слоя совместимости ядра netbsd для 32-битных системных вызовов. Бит NX используется для обеспечения неисполняемости стека и кучи с гранулярностью на страницу (на 32-битной x86 используется гранулярность сегмента).

OpenBSD (всего один раз)

OpenBSD поддерживает AMD64 с версии 3.5, выпущенной 1 мая 2004 года. Полная реализация поддержки AMD64 была завершена до официального выпуска оборудования, поскольку AMD предоставила несколько машин для хакатона проекта в тот год. Разработчики OpenBSD оценили эту платформу благодаря поддержке бита NX, что упростило реализацию функции W^X. Код порта OpenBSD для AMD64 также работает на процессорах Intel 64, использующих клонированные расширения AMD64, однако из-за отсутствия бита NX в таблицах страниц в ранних процессорах Intel 64, на этих процессорах Intel функция W^X не поддерживается; более поздние процессоры Intel 64 получили бит NX под названием "XD bit". Симметричная многопроцессорность (SMP) работает на порту OpenBSD для AMD64, начиная с релиза 3.6 от 1 ноября 2004 года.

DOS

В DOS можно войти в длинный режим без использования расширителя DOS, однако пользователю необходимо вернуться в реальный режим для вызова прерываний BIOS или DOS. Также возможно войти в длинный режим с расширителем DOS, подобным DOS/4GW, но это более сложная задача, поскольку архитектура x86-64 не поддерживает виртуальный режим 8086. Сам DOS не осведомлен об этом, и не стоит ожидать какой-либо выгоды, если DOS запускается в эмуляции с адекватным драйвером виртуализации, например, интерфейсом массового хранения данных.

Линукс

Linux был первым ядром операционной системы, способным работать с архитектурой x86 64 в длинном режиме, начиная с версии 2.4 в 2001 году (ещё до появления соответствующего аппаратного обеспечения). Linux также обеспечивает обратную совместимость для запуска 32-битных исполняемых файлов. Это позволяет перекомпилировать программы для работы в длинном режиме, при этом сохраняя возможность использования 32-битных приложений. Современные дистрибутивы Linux поставляются с ядрами и окружением пользователя (userland), изначально предназначенными для x86 64. Некоторые из них, такие как Arch Linux, SUSE, Mandriva и Debian, позволяют пользователям устанавливать набор 32-битных компонентов и библиотек при установке с 64-битного установочного носителя, что обеспечивает возможность запуска большинства существующих 32-битных приложений вместе с 64-битной ОС. ABI x32 (Application Binary Interface), представленный в Linux 3.4, позволяет программам, скомпилированным для ABI x32, работать в 64-битном режиме x86 64, используя только 32-битные указатели и поля данных. Хотя это ограничивает объём виртуальной адресной памяти программы до 4 ГБ, это также снижает её потребление памяти и в некоторых случаях может повысить производительность. При этом, с включенным 5-уровневым страничным управлением, доступно до 128 ПиБ (виртуальной) и 4 ПиБ (физической) памяти.

macOS

Mac OS X 10.4.7 и более поздние версии Mac OS X 10.4 запускают 64-битные инструменты командной строки, используя библиотеки POSIX и математические библиотеки на 64-битных машинах Intel, как и все версии Mac OS X 10.4 и 10.5 запускают их на 64-битных машинах PowerPC. Никакие другие библиотеки или фреймворки не работают с 64-битными приложениями в Mac OS X 10.4. Ядро и все его расширения – только 32-битные. Mac OS X 10.5 поддерживает 64-битные приложения с графическим интерфейсом, использующие Cocoa, Quartz, OpenGL и X11 на 64-битных машинах Intel, а также на 64-битных машинах PowerPC. Все библиотеки и фреймворки, не имеющие графического интерфейса, также поддерживают 64-битные приложения на этих платформах. Ядро и все его расширения – только 32-битные. Mac OS X 10.6 – первая версия macOS, поддерживающая 64-битное ядро. Однако не все 64-битные компьютеры могут запускать 64-битное ядро, и не все 64-битные компьютеры, которые могут запускать 64-битное ядро, будут делать это по умолчанию. 64-битное ядро, как и 32-битное ядро, поддерживает 32-битные приложения; оба ядра также поддерживают 64-битные приложения. 32-битные приложения имеют ограничение виртуального адресного пространства в 4 ГБ под любым ядром. 64-битное ядро не поддерживает 32-битные расширения ядра, а 32-битное ядро не поддерживает 64-битные расширения ядра. OS X 10.8 включает только 64-битное ядро, но продолжает поддерживать 32-битные приложения; однако оно не поддерживает 32-битные расширения ядра. macOS 10.15 включает только 64-битное ядро и больше не поддерживает 32-битные приложения. Это удаление поддержки создало проблему для WineHQ (и коммерческой версии CrossOver), поскольку им все еще необходимо запускать 32-битные приложения Windows. Решение, названное wine32on64, заключалось в добавлении заглушек (thunks), которые переводят процессор в 32-битный режим совместимости и обратно в номинально 64-битном приложении. macOS использует универсальный двоичный формат для упаковки 32- и 64-битных версий кода приложений и библиотек в один файл; наиболее подходящая версия автоматически выбирается во время загрузки. В Mac OS X 10.6 универсальный двоичный формат также используется для ядра и для тех расширений ядра, которые поддерживают как 32-битные, так и 64-битные ядра.

Солярис

Solaris 10 и более поздние версии поддерживают архитектуру x86 64. Для Solaris 10, как и для архитектуры SPARC, существует только один образ операционной системы, который содержит 32-битное ядро и 64-битное ядро; этот образ обозначен как DVD ROM "x64/x86". По умолчанию загружается 64-битное ядро, что позволяет запускать как 64-битные, так и существующие или новые 32-битные исполняемые файлы. 32-битное ядро также можно выбрать вручную, в этом случае будут запускаться только 32-битные исполняемые файлы. Команда `isainfo` может быть использована для определения, работает ли система с 64-битным ядром. Для Solaris 11 предоставляется только 64-битное ядро. Однако это 64-битное ядро поддерживает как 32-битные, так и 64-битные исполняемые файлы, библиотеки и системные вызовы.

Окна

x64 версии клиентской и серверной редакций Microsoft Windows — Windows XP Professional x64 Edition и Windows Server 2003 x64 Edition — были выпущены в марте 2005 года. Внутренне они фактически представляют собой одну и ту же сборку (5.2.3790.1830 SP1), поскольку используют единую исходную базу и бинарные файлы операционной системы, поэтому даже обновления системы выпускаются в унифицированных пакетах, аналогично Windows 2000 Professional и Server для x86. Windows Vista, также имеющая множество различных редакций, была выпущена в январе 2007 года. Windows 7 была выпущена в июле 2009 года. Windows Server 2008 R2 продавалась только в редакциях x64 и Itanium; более поздние версии Windows Server предлагают только редакцию x64. Редакции Windows для x64, выпущенные до Windows 8.1 и Windows Server 2012 R2, предоставляют следующее: 8 ТиБ виртуального адресного пространства на процесс, доступного как в режиме пользователя, так и в режиме ядра, именуемого адресным пространством пользовательского режима. Программа x64 может использовать весь этот объем, при условии, что она связана с опцией "aware large address", которая присутствует по умолчанию. Это увеличение в 4096 раз по сравнению с виртуальным адресным пространством в пользовательском режиме 2 ГБ, предлагаемым 32-разрядными Windows. 8 ТиБ виртуального адресного пространства в режиме ядра для операционной системы. В Windows 8.1 и Windows Server 2012 R2 виртуальные адресные пространства в режимах пользователя и ядра были расширены до 128 ТиБ. В отличие от использования опции загрузки /3GiB на x86, это не уменьшает виртуальное адресное пространство в режиме ядра, доступное операционной системе. Таким образом, 32-разрядные приложения могут извлекать выгоду из работы в x64 Windows, даже если они не были перекомпилированы для x86 64. И 32-разрядные, и 64-разрядные приложения, если они не связаны с "aware large address", ограничены 2 ГБ виртуального адресного пространства. Возможность использования до 128 ГБ (Windows XP/Vista), 192 ГБ (Windows 7), 512 ГБ (Windows 8), 1 ТиБ (Windows Server 2003), 2 ТиБ (Windows Server 2008/Windows 10), 4 ТиБ (Windows Server 2012) или 24 ТиБ (Windows Server 2016/2019) физической оперативной памяти (RAM). Модель данных LLP64: в C/C++ типы "int" и "long" имеют ширину 32 бита, "long long" — 64 бита, а указатели и типы, производные от указателей, имеют ширину 64 бита. Драйверы устройств в режиме ядра должны быть 64-разрядными; запуск 32-разрядных исполняемых файлов в режиме ядра в 64-разрядной операционной системе невозможен. Драйверы устройств пользовательского режима могут быть 32-разрядными или 64-разрядными. 16-разрядные Windows (Win16) и приложения DOS не будут работать на 64-разрядных версиях Windows x86 из-за удаления подсистемы виртуальных машин DOS (NTVDM), которая зависела от возможности использования виртуального режима 8086. Виртуальный режим 8086 нельзя активировать при работе в длинном режиме. Полная реализация функции защиты страниц NX (No Execute). Это также реализовано в последних 32-разрядных версиях Windows при запуске в режиме PAE. Вместо дескриптора сегмента FS в версиях x86 семейства Windows NT дескриптор сегмента GS используется для указания на две структуры, определенные операционной системой: блок информации о потоке (NT TIB) в пользовательском режиме и область управления процессором (KPCR) в режиме ядра. Таким образом, например, в пользовательском режиме GS:0 является адресом первого члена блока информации о потоке. Сохранение этой конвенции упростило портирование на x86 64, но потребовало от AMD сохранить функцию сегментов FS и GS в длинном режиме, хотя сегментированное адресование как таковое не используется ни одной современной операционной системой (которые также поддерживаются на процессорах Intel, начиная с Broadwell). Некоторые компоненты, такие как Jet Database Engine и Data Access Objects, не будут портированы на 64-разрядные архитектуры, такие как x86 64 и IA 64. Microsoft Visual Studio может компилировать собственные приложения для целевой архитектуры x86 64, которая может работать только на 64-разрядной Microsoft Windows, или архитектуры IA 32, которая может работать как 32-разрядное приложение на 32-разрядной Microsoft Windows или 64-разрядной Microsoft Windows в режиме эмуляции WoW64. Управляемые приложения могут компилироваться в режимах IA 32, x86 64 или AnyCPU. Программное обеспечение, созданное в первых двух режимах, ведет себя как их аналоги IA 32 или x86 64 соответственно; при использовании режима AnyCPU приложения в 32-разрядных версиях Microsoft Windows работают как 32-разрядные приложения, в то время как в 64-разрядных редакциях Microsoft Windows они работают как 64-разрядные приложения.

Консоли для видеоигр

И PlayStation 4, и Xbox One, и все варианты этих консолей, включают процессоры AMD x86 64, основанные на микроархитектуре Jaguar. Прошивка и игры написаны на коде x86 64; устаревший код x86 не используется. Текущее поколение, PlayStation 5 и Xbox Series X и Series S соответственно, также включают процессоры AMD x86 64, основанные на микроархитектуре Zen 2. Хотя Steam Deck считается ПК, он использует специализированный ускоренный процессор AMD x86 64 (APU), основанный на микроархитектуре Zen 2.