stringtranslate.com

х86-64

AMD Opteron , первый процессор, представивший расширения x86-64 в апреле 2003 года.
Пятитомный набор Руководства программиста по архитектуре x86-64 , опубликованный и распространяемый AMD в 2002 году.

x86-64 (также известный как x64 , x86_64 , AMD64 и Intel 64 ) [примечание 1] — это 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-битная операционная система поддерживает их. [11] [примечание 2] Поскольку полные 16-битные и 32-битные наборы команд x86 остаются реализованными на аппаратном уровне без какой-либо промежуточной эмуляции, эти старые исполняемые файлы могут работать с небольшим снижением производительности или вообще без него, [13] в то время как новые или модифицированные приложения могут воспользоваться новыми возможностями конструкции процессора для повышения производительности. Кроме того, процессор, поддерживающий 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

Логотип AMD64

История

AMD64 (также по-разному именуемая AMD в литературе и документации как «64-битная технология AMD» и «Архитектура AMD x86-64») была создана как альтернатива радикально отличающейся архитектуре IA-64 , разработанной Intel и Hewlett-Packard. , который был обратно несовместим с IA-32 , 32-битной версией архитектуры x86 . Первоначально AMD анонсировала AMD64 в 1999 году [14], а полная спецификация была доступна в августе 2000 года. [15] Поскольку AMD никогда не приглашалась участвовать в разработке архитектуры IA-64, а любое лицензирование казалось маловероятным, архитектура AMD64 была позиционирована разработанный AMD с самого начала как эволюционный способ добавления 64-битных вычислительных возможностей к существующей архитектуре x86 при поддержке устаревшего 32-битного кода x86 , в отличие от подхода Intel по созданию совершенно новой, полностью несовместимой с x86 64-битной архитектуры с ИА-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 («Палермо» E6 со степпингом и все модели «Манила»), Phenom (с последующим «X3» или «X4» для обозначения количества ядер), Phenom II (с последующим «X2», « X3», «X4» или «X6» для обозначения количества ядер), FX , Fusion/APU и Ryzen / Epyc .

Архитектурные особенности

Основной определяющей характеристикой AMD64 является наличие 64-битных регистров процессора общего назначения (например, rax ), 64-битных целочисленных арифметических и логических операций, а также 64-битных виртуальных адресов . [ нужна цитата ] Дизайнеры воспользовались возможностью внести и другие улучшения.

Заметные изменения в 64-битных расширениях включают в себя:

64-битные целочисленные возможности
Все регистры общего назначения (GPR) расширены с 32  бит до 64 бит, и все арифметические и логические операции, операции между памятью и регистром и между регистрами и т. д. могут работать непосредственно с 64-битными целыми числами. По умолчанию операции push и pop в стеке выполняются с шагом 8 байт, а ширина указателей составляет 8 байт.
Дополнительные регистры
Помимо увеличения размера регистров общего назначения, количество именованных регистров общего назначения увеличено с восьми (т.е. eax , ecx , edx , ebx , esp , ebp , esi , edi ) в x86 до 16 (т.е. rax , rcx , rdx , rbx , rsp , rbp , rsi , rdi , r8 , r9 , r10 , r11 , r12 , r13 , r14 , r15 ). Таким образом, можно хранить больше локальных переменных в регистрах, а не в стеке, и позволить регистрам хранить часто используемые константы; Аргументы для небольших и быстрых подпрограмм также могут в большей степени передаваться в регистрах.
AMD64 по-прежнему имеет меньше регистров, чем многие наборы инструкций RISC (например, PA-RISC , Power ISA и MIPS имеют 32 GPR; Alpha , 64-битный ARM и SPARC имеют 31) или VLIW -подобные машины, такие как IA-64 (который имеет 128 регистров). Однако реализация AMD64 может иметь гораздо больше внутренних регистров, чем количество архитектурных регистров, предоставляемых набором команд (см. переименование регистров ). (Например, ядра AMD Zen имеют 168 64-битных целочисленных и 160 128-битных векторных физических внутренних регистров с плавающей запятой.)
Дополнительные регистры XMM (SSE)
Аналогично, количество 128-битных регистров XMM (используемых для потоковой передачи инструкций SIMD ) также увеличено с 8 до 16.
Традиционный стек регистров x87 FPU не включен в расширение размера файла регистров в 64-битном режиме по сравнению с регистрами XMM, используемыми SSE2, которые были расширены. Стек регистров x87 не является простым файлом регистров, хотя он обеспечивает прямой доступ к отдельным регистрам посредством недорогих операций обмена.
Большее виртуальное адресное пространство
Архитектура AMD64 определяет 64-битный формат виртуального адреса, младшие 48 бит которого используются в текущих реализациях. [11] : 120  Это позволяет получить до 256  ТБ (2 48 байт ) виртуального адресного пространства. Определение архитектуры позволяет увеличить этот предел в будущих реализациях до полных 64 бит, [11] : 2  : 3  : 13  : 117  : 120  , расширяя виртуальное адресное пространство до 16  ЭБ (2 64 байта). [16] Для сравнения:  у x86 всего 4 ГБ (2 32 байта). [17]
Это означает, что с очень большими файлами можно работать, отображая весь файл в адресное пространство процесса (что зачастую намного быстрее, чем работа с вызовами чтения/записи файла), вместо того, чтобы отображать области файла в адресное пространство и из него. адресное пространство.
Большее физическое адресное пространство
Первоначальная реализация архитектуры AMD64 реализовала 40-битные физические адреса и поэтому могла адресовать до 1 ТБ (2 40 байт) ОЗУ. [11] : 24  Текущие реализации архитектуры AMD64 (начиная с микроархитектуры AMD 10h ) расширяют это до 48-битных физических адресов [18] и, следовательно, могут адресовать до 256 ТБ (2 48 байт) ОЗУ. Архитектура позволяет в будущем расширить это число до 52 битов [11] : 24  [19] (ограничено форматом записи таблицы страниц); [11] : 131  это позволит адресовать до 4 ПБ ОЗУ. Для сравнения, 32-битные процессоры x86 ограничены 64 ГБ ОЗУ в режиме расширения физического адреса (PAE) [20] или 4 ГБ ОЗУ без режима PAE. [11] : 4 
Большее физическое адресное пространство в устаревшем режиме
При работе в устаревшем режиме архитектура AMD64 поддерживает режим расширения физического адреса (PAE), как и большинство современных процессоров x86, но AMD64 расширяет PAE с 36 бит до архитектурного предела в 52 бита физического адреса. Таким образом, любая реализация допускает тот же предел физических адресов, что и в длинном режиме . [11] : 24 
Указатель инструкций относительно доступа к данным
Инструкции теперь могут ссылаться на данные относительно указателя инструкции (регистра RIP). Это делает независимый от позиции код , который часто используется в общих библиотеках и коде, загружаемом во время выполнения, более эффективным.
Инструкции ССЕ
Исходная архитектура AMD64 использовала Intel SSE и SSE2 в качестве основных инструкций. Эти наборы команд обеспечивают векторное дополнение к скалярному FPU x87 для типов данных одинарной и двойной точности. SSE2 также предлагает целочисленные векторные операции для типов данных с точностью от 8 до 64 бит. Это ставит векторные возможности архитектуры на один уровень с возможностями самых совершенных процессоров x86 своего времени. Эти инструкции также можно использовать в 32-битном режиме. Распространение 64-битных процессоров сделало эти векторные возможности повсеместными в домашних компьютерах, что позволило улучшить стандарты 32-битных приложений. Например, 32-разрядная версия Windows 8 требует наличия инструкций SSE2. [21] Инструкции SSE3 и более поздние наборы инструкций потоковых расширений SIMD не являются стандартными функциями архитектуры.
Бит запрета выполнения
Бит No-Execute или бит NX (бит 63 записи таблицы страниц) позволяет операционной системе указывать, какие страницы виртуального адресного пространства могут содержать исполняемый код, а какие нет. Попытка выполнить код со страницы с пометкой «не выполнять» приведет к нарушению доступа к памяти, аналогично попытке записи на страницу, доступную только для чтения. Это должно затруднить захват контроля над системой вредоносным кодом посредством атак « переполнение буфера » или «непроверяемый буфер». Подобная функция была доступна на процессорах x86 начиная с 80286 как атрибут дескрипторов сегментов ; однако это работает только для целого сегмента одновременно.
Сегментированная адресация долгое время считалась устаревшим режимом работы, и все современные операционные системы ПК фактически обходят его, устанавливая для всех сегментов нулевой базовый адрес и (в их 32-битной реализации) размер 4 ГБ. AMD была первым поставщиком семейства x86, реализовавшим запрет выполнения в режиме линейной адресации. Эта функция также доступна в устаревшем режиме на процессорах AMD64 и последних процессорах Intel x86 при использовании PAE.
Удаление старых функций
Некоторые функции «системного программирования» архитектуры x86 либо не использовались, либо недостаточно использовались в современных операционных системах и либо недоступны на AMD64 в длинном (64-битном и совместимом) режиме, либо существуют только в ограниченной форме. К ним относятся сегментированная адресация (хотя сегменты FS и GS сохраняются в рудиментарной форме для использования в качестве дополнительных указателей на структуры операционной системы), [11] : 70  механизм переключения состояния задачи и виртуальный режим 8086 . Эти функции остаются полностью реализованными в «устаревшем режиме», что позволяет этим процессорам запускать 32-битные и 16-битные операционные системы без изменений. Некоторые инструкции, которые оказались редко полезными, не поддерживаются в 64-битном режиме, включая сохранение/восстановление сегментных регистров в стеке, сохранение/восстановление всех регистров (PUSHA/POPA), десятичную арифметику, инструкции BOUND и INTO и " Far» прыгает и вызывает непосредственные операнды.

Подробности виртуального адресного пространства

Адреса канонической формы

Реализации канонического адресного пространства (диаграммы не в масштабе)

Хотя виртуальные адреса имеют ширину 64 бита в 64-битном режиме, текущие реализации (и все микросхемы, которые, как известно, находятся на стадии планирования) не позволяют использовать все виртуальное адресное пространство размером 2 64 байта (16  ЭБ ). Это будет примерно в четыре миллиарда раз больше размера виртуального адресного пространства на 32-битных машинах. Большинству операционных систем и приложений в обозримом будущем не понадобится такое большое адресное пространство, поэтому внедрение таких широких виртуальных адресов просто увеличит сложность и стоимость трансляции адресов без какой-либо реальной выгоды. Поэтому AMD решила, что в первых реализациях архитектуры при трансляции адреса ( поиске в таблице страниц ) фактически будут использоваться только наименее значимые 48 бит виртуального адреса. [11] : 120 

Кроме того, спецификация AMD требует, чтобы старшие 16 бит любого виртуального адреса, биты с 48 по 63, были копиями бита 47 (аналогично расширению знака ). Если это требование не выполнено, процессор выдаст исключение. [11] : 131  Адреса, соответствующие этому правилу, называются «канонической формой». [11] : 130  адресов канонической формы от 0 до 00007FFF'FFFFFFFF и от FFFF8000'00000000 до FFFFFFFF'FFFFFFFF, что в общей сложности составляет 256  ТБ полезного виртуального адресного пространства. Это по-прежнему в 65 536 раз больше, чем виртуальное адресное пространство размером 4 ГБ на 32-битных машинах.

Эта функция облегчает последующее масштабирование до истинной 64-битной адресации. Многие операционные системы (включая, помимо прочего, семейство Windows NT ) берут себе половину адресного пространства с более высоким адресом (называемое пространством ядра ) и оставляют половину с более низким адресом ( пространство пользователя ) для кода приложения, пользовательского режима. стеки, кучи и другие области данных. [22] Конструкция «канонического адреса» гарантирует, что каждая реализация, совместимая с AMD64, по сути, имеет две половины памяти: нижняя половина начинается с 00000000'00000000 и «растет вверх» по мере того, как становится доступным больше битов виртуального адреса, в то время как верхняя половина «пристыковывается» к верху адресного пространства и растет вниз. Кроме того, обеспечение «канонической формы» адресов путем проверки неиспользуемых битов адреса предотвращает их использование операционной системой в помеченных указателях, таких как флаги, маркеры привилегий и т. д., поскольку такое использование может стать проблематичным, когда архитектура будет расширена для реализации более виртуальных биты адреса.

Первые версии Windows для x64 даже не использовали полные 256 ТБ; они были ограничены всего 8 ТБ пользовательского пространства и 8 ТБ пространства ядра. [22] Windows не поддерживала всё 48-битное адресное пространство до Windows 8.1 , выпущенной в октябре 2013 года. [22]

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

64-битный режим адресации (« длинный режим ») представляет собой расширенный набор расширений физических адресов (PAE); из-за этого размеры страниц могут составлять 4  КБ (2 12 байт) или 2  МБ (2 21 байт). [11] :  Длинный режим 120 также поддерживает размеры страниц 1  ГБ (2 30 байт). [11] : 120  Вместо трехуровневой системы таблиц страниц , используемой в системах в режиме PAE, системы, работающие в длинном режиме, используют четыре уровня таблицы страниц: таблица указателей каталога страниц PAE расширена с четырех записей до 512, а также дополнительная Добавлена ​​таблица Page-Map Level 4 (PML4) , содержащая 512 записей в 48-битных реализациях. [11] : 131  Полная иерархия сопоставлений страниц размером 4 КБ для всего 48-битного пространства потребует чуть больше 512  ГБ памяти (около 0,195% от виртуального пространства в 256 ТБ).

Intel реализовала схему с 5-уровневой таблицей страниц , которая позволяет процессорам Intel 64 поддерживать 57-битное виртуальное адресное пространство. [23] Дальнейшие расширения могут обеспечить полное 64-битное виртуальное адресное пространство и физическую память за счет увеличения размера записи таблицы страниц до 128 бит и сократить количество обходов страниц в 5-уровневой иерархии за счет использования большего размера выделения страниц в 64 КБ, который все еще поддерживает операции со страницами размером 4 КБ для обратной совместимости. [24]

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

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

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

Современные процессоры AMD64 поддерживают физическое адресное пространство объемом до 2 48 байт ОЗУ или 256  ТБ . [18] Однако по состоянию на 2020 год не было известных материнских плат x86-64 , поддерживающих 256 ТБ ОЗУ. [25] [26] [27] [28] [ не удалось выполнить проверку ] Операционная система может налагать дополнительные ограничения на объем ОЗУ, который можно использовать или поддерживать. Подробности по этому вопросу приведены в разделе «Совместимость и характеристики операционных систем» данной статьи.

Режимы работы

Архитектура имеет два основных режима работы: длительный режим и устаревший режим.

  1. ^ abcd Обратите внимание, что 16-битный код, написанный для 80286 и ниже, не использует 32-битные инструкции операндов. Код, написанный для 80386 и выше, может использовать префикс переопределения размера операнда (0x66). Обычно этот префикс используется кодом защищенного и длинного режима с целью использования 16-битных операндов, поскольку этот код будет выполняться в сегменте кода с размером операнда по умолчанию 32 бита. В реальном режиме размер операнда по умолчанию составляет 16 бит, поэтому префикс 0x66 интерпретируется по-другому, изменяя размер операнда на 32 бита.
Диаграмма состояний режимов работы x86-64

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

Длинный режим — это предполагаемый основной режим работы архитектуры; это комбинация собственного 64-битного режима процессора и комбинированного 32-битного и 16-битного режима совместимости. Он используется 64-битными операционными системами. В 64-битной операционной системе 64-битные программы работают в 64-битном режиме, а 32-битные и 16-битные приложения в защищенном режиме (которым не требуется использовать ни реальный режим, ни виртуальный режим 8086 для выполнения в любой момент). время) запустить в режиме совместимости. Программы реального режима и программы, использующие виртуальный режим 8086, в любое время не могут быть запущены в длительном режиме, если эти режимы не эмулируются программным обеспечением. [11] : 11  Однако такие программы можно запускать из операционной системы, работающей в длинном режиме на процессорах с поддержкой VT-x или AMD-V , путем создания виртуального процессора, работающего в нужном режиме.

Поскольку базовый набор команд тот же, снижение производительности при выполнении кода x86 в защищенном режиме практически отсутствует. Это отличается от Intel IA-64 , где различия в базовом наборе команд означают, что выполнение 32-битного кода должно выполняться либо в режиме эмуляции x86 (что замедляет процесс), либо с помощью выделенного сопроцессора x86. Однако на платформе x86-64 многие приложения x86 могут получить выгоду от 64-битной перекомпиляции благодаря дополнительным регистрам в 64-битном коде и гарантированной поддержке FPU на основе SSE2, которую компилятор может использовать для оптимизации. Однако приложениям, которые регулярно обрабатывают целые числа длиной более 32 бит, например криптографическим алгоритмам, потребуется переписать код, обрабатывающий огромные целые числа, чтобы использовать преимущества 64-битных регистров.

Устаревший режим

Режим Legacy — это режим, в котором находится процессор, когда он не находится в длительном режиме. [11] : 14  В этом режиме процессор действует как более старый процессор x86, и может выполняться только 16-битный и 32-битный код. Режим Legacy допускает максимальную 32-битную виртуальную адресацию, что ограничивает виртуальное адресное пространство до 4 ГБ. [11] : 14  : 24  : 118  64-разрядные программы невозможно запустить из устаревшего режима.

Защищенный режим

Защищенный режим становится подрежимом устаревшего режима. [11] : 14  Это подрежим, в котором работают 32-битные операционные системы и 16-битные операционные системы с защищенным режимом при работе на процессоре x86-64. [11] : 14 

Реальный режим

Реальный режим — это начальный режим работы при инициализации процессора и подрежим устаревшего режима. Он обратно совместим с оригинальными процессорами Intel 8086 и Intel 8088 . Реальный режим сегодня в основном используется загрузчиками операционной системы, которые необходимы архитектуре для настройки деталей виртуальной памяти перед переходом в более высокие режимы. Этот режим также используется любой операционной системой, которой необходимо взаимодействовать с микропрограммой системы через традиционный интерфейс в стиле BIOS . [29]

Интел 64

Intel 64 — это реализация Intel x86-64, используемая и реализованная в различных процессорах Intel.

История

Исторически AMD разрабатывала и производила процессоры с наборами инструкций, созданными по образцу исходных разработок Intel, но с x86-64 роли поменялись местами: Intel оказалась в положении принятия ISA, созданного AMD как расширение собственной линейки процессоров Intel x86.

Первоначально проект Intel имел кодовое название Yamhill [30] (в честь реки Ямхилл в долине Уилламетт в Орегоне). После нескольких лет отрицания его существования Intel объявила на IDF в феврале 2004 года , что проект действительно находится в стадии реализации. Тогдашний председатель Intel Крейг Барретт признал, что это был один из их самых плохо охраняемых секретов. [31] [32]

Название этого набора инструкций Intel менялось несколько раз. В ЦАХАЛе использовалось название CT [33] (предположительно [ оригинальное исследование? ] для Clackamas Technology , еще одно кодовое название от реки Орегон ); через несколько недель они начали называть его IA-32e (для расширений IA-32 ), а в марте 2004 года представили «официальное» название EM64T (технология расширенной памяти 64). В конце 2006 года Intel начала вместо этого использовать название Intel 64 для своей реализации, параллельно с использованием AMD названия AMD64. [34]

Первым процессором, реализующим 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 начиная с « Мером-2М », 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.

X86S

X86S — это упрощение X86-64, предложенное Intel в мае 2023 года для своих продуктов Intel 64. [35] В новой архитектуре будет удалена поддержка 16-битных и 32-битных операционных систем, в то время как 32-битные программы по-прежнему будут работать под управлением 64-битной ОС. ЦП больше не будет иметь устаревшего режима и будет запускаться непосредственно в 64-битном длинном режиме . Будет возможность переключиться на 5-уровневую разбивку по страницам , не переходя в невыгружаемый режим. В число конкретных удаленных функций входят: [36]

Intel считает, что это изменение логично следует за удалением шлюза A20 в 2008 году и прекращением поддержки 16-битных и 32-битных ОС в прошивке Intel в 2020 году. Поддержка устаревших операционных систем будет осуществляться посредством виртуализации с аппаратным ускорением и/или кольцевой технологии . 0 эмуляция. [36]

Реализация VIA x86-64

VIA Technologies представила свою первую реализацию архитектуры x86-64 в 2008 году после пяти лет разработки ее подразделением ЦП Centaur Technology . [37] 64-битная архитектура под кодовым названием «Isaiah» была представлена ​​24 января 2008 года, [38] и выпущена 29 мая под торговой маркой VIA Nano . [39]

Процессор поддерживает ряд специфичных для VIA расширений x86, предназначенных для повышения эффективности устройств с низким энергопотреблением. Ожидается, что архитектура Isaiah будет в два раза быстрее по целочисленной производительности и в четыре раза быстрее по производительности с плавающей запятой , чем VIA Esther предыдущего поколения при эквивалентной тактовой частоте . Ожидается, что энергопотребление будет на уровне процессоров VIA предыдущего поколения, а расчетная тепловая мощность будет варьироваться от 5 Вт до 25 Вт. [40] Будучи совершенно новой конструкцией, архитектура Isaiah была построена с поддержкой таких функций, как x86. -64 набора команд и виртуализации x86 , которые были недоступны в его предшественниках, линейке VIA C7 , сохраняя при этом свои расширения шифрования.

Уровни микроархитектуры

В 2020 году благодаря сотрудничеству AMD, Intel, Red Hat и SUSE были определены три уровня микроархитектуры (или уровня функций) поверх базового уровня x86-64: x86-64-v2, x86-64-v3 и x86. -64-в4. [41] [42] Эти уровни определяют конкретные функции, на которые программисты могут ориентироваться для оптимизации времени компиляции. На каждом уровне представлены следующие функции: [43]

Все уровни включают функции, найденные на предыдущих уровнях. Расширения набора команд, не связанные с вычислениями общего назначения, включая AES-NI и RDRAND , исключены из требований уровня.

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

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

Последние реализации

Старые реализации

Принятие

Диаграмма областей, показывающая представительство различных семейств микропроцессоров в рейтинге суперкомпьютеров TOP500 с 1993 по 2020 год [77]

В суперкомпьютерах , отслеживаемых TOP500 , появление 64-битных расширений для архитектуры x86 позволило 64-битным процессорам x86 от AMD и Intel заменить большинство процессорных архитектур RISC, ранее использовавшихся в таких системах (включая PA-RISC , SPARC , Alpha и другие). , а также 32-битный x86, хотя сама Intel изначально безуспешно пыталась заменить x86 новой несовместимой 64-битной архитектурой в процессоре Itanium .

По состоянию на 2020 год суперкомпьютер на базе Fujitsu A64FX под названием Fugaku занимает первое место. Первый суперкомпьютер на базе ARM появился в списке в 2018 году [78] , а в последние годы большую роль в производительности также сыграли сопроцессоры с непроцессорной архитектурой ( GPGPU ). Сопроцессоры Intel Xeon Phi «Knights Corner» , реализующие подмножество x86-64 с некоторыми векторными расширениями, [79] также используются вместе с процессорами x86-64 в суперкомпьютере Tianhe-2 . [80]

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

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

БСД

Стрекоза БСД

Предварительные работы по созданию инфраструктуры для порта x86-64 были начаты в феврале 2004 года. [81] Позже это развитие застопорилось. Разработка возобновилась в июле 2007 года [82] и продолжилась во время Google Summer of Code 2008 и SoC 2009. [83] [84] Первым официальным выпуском, содержавшим поддержку x86-64, была версия 2.4. [85]

FreeBSD

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

NetBSD

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

OpenBSD

OpenBSD поддерживает AMD64, начиная с OpenBSD 3.5, выпущенного 1 мая 2004 года. Полная реализация поддержки AMD64 в дереве была достигнута до первого выпуска оборудования, поскольку AMD предоставила в аренду несколько машин для хакатона проекта в том году. Разработчики OpenBSD перешли на эту платформу из-за ее поддержки бита NX , что позволило легко реализовать функцию W^X .

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

ДОС

В DOS можно войти в длинный режим без расширителя DOS, [86] , но пользователь должен вернуться в реальный режим, чтобы вызвать прерывания BIOS или DOS.

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

Линукс

Linux был первым ядром операционной системы, работавшим на архитектуре x86-64 в длинном режиме , начиная с версии 2.4 в 2001 году (до появления аппаратного обеспечения). [87] [88] Linux также обеспечивает обратную совместимость для запуска 32-битных исполняемых файлов. Это позволяет перекомпилировать программы в длинный режим, сохраняя при этом использование 32-битных программ. Текущие дистрибутивы Linux поставляются с собственными ядрами и пользовательскими пространствами x86-64 . Некоторые из них, такие как Arch Linux , [89] SUSE , Mandriva и Debian , позволяют пользователям устанавливать набор 32-битных компонентов и библиотек при установке с 64-битного носителя, что позволяет запускать большинство существующих 32-битных приложений. наряду с 64-битной ОС.

x32 ABI (двоичный интерфейс приложения), представленный в Linux 3.4, позволяет программам, скомпилированным для x32 ABI, работать в 64-битном режиме x86-64, используя только 32-битные указатели и поля данных. [90] [91] [92] Хотя это ограничивает программу виртуальным адресным пространством в 4 ГБ, это также уменьшает объем памяти, занимаемой программой, и в некоторых случаях может позволить ей работать быстрее. [90] [91] [92]

64-разрядная версия Linux предоставляет до 128  ТБ виртуального адресного пространства для отдельных процессов и может адресовать примерно 64 ТБ физической памяти, с учетом ограничений процессора и системы, [93] или до 128 ПБ (виртуальной) и 4 ПБ (физической) с Включена 5-уровневая пейджинговая система. [94]

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. [95] Ядро и все расширения ядра являются только 32-битными.

Mac OS X 10.5 поддерживает 64-битные приложения с графическим интерфейсом, использующие Cocoa , Quartz , OpenGL и X11 на 64-битных компьютерах на базе процессоров Intel, а также на 64-битных компьютерах PowerPC . [96] Все библиотеки и платформы без графического интерфейса также поддерживают 64-битные приложения на этих платформах. Ядро и все расширения ядра являются только 32-битными.

Mac OS X 10.6 — первая версия macOS , поддерживающая 64-битное ядро . Однако не все 64-разрядные компьютеры могут работать с 64-разрядным ядром, и не все 64-разрядные компьютеры, которые могут запускать 64-разрядное ядро, будут делать это по умолчанию. [97] 64-битное ядро, как и 32-битное ядро, поддерживает 32-битные приложения; оба ядра также поддерживают 64-битные приложения. Для 32-разрядных приложений ограничение виртуального адресного пространства составляет 4 ГБ для любого ядра. [98] [99] 64-битное ядро ​​не поддерживает 32-битные расширения ядра , а 32-битное ядро ​​не поддерживает 64-битные расширения ядра.

OS X 10.8 включает только 64-битное ядро, но продолжает поддерживать 32-битные приложения; однако он не поддерживает 32-битные расширения ядра.

macOS 10.15 включает только 64-битное ядро ​​и больше не поддерживает 32-битные приложения. Это прекращение поддержки создало проблему для WineHQ (и коммерческой версии CrossOver ), поскольку он по-прежнему должен иметь возможность запускать 32-битные приложения Windows. Решение, получившее название Wine32on64 , заключалось в добавлении преобразователей , которые переводят ЦП в режим 32-битной совместимости и выводят его из номинально 64-битного приложения. [100] [101]

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-битные исполняемые файлы, библиотеки и системные вызовы.

Окна

64-разрядные версии клиента и сервера Microsoft Windows — Windows XP Professional x64 Edition и Windows Server 2003 x64 Edition — были выпущены в марте 2005 года . поскольку они используют одну и ту же исходную базу и двоичные файлы операционной системы, поэтому даже обновления системы выпускаются в унифицированных пакетах, во многом аналогично выпускам 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 предлагают следующее:

В Windows 8.1 и Windows Server 2012 R2 виртуальные адресные пространства как в пользовательском режиме, так и в режиме ядра были расширены до 128 ТБ. [22] Эти версии Windows не будут установлены на процессоры, для которых отсутствует CMPXCHG16Bинструкция.

Следующие дополнительные характеристики применимы ко всем 64-разрядным версиям Windows:

Игровые консоли

И PlayStation 4, и Xbox One , а также все варианты этих консолей оснащены процессорами AMD x86-64, основанными на микроархитектуре Jaguar . [115] [116] Прошивки и игры написаны на коде x86-64; никакой устаревший код x86 не используется.

Текущее поколение PlayStation 5 и Xbox Series X и Series S соответственно также оснащено процессорами AMD x86-64 на основе микроархитектуры Zen 2 . [117] [118]

Несмотря на то, что Steam Deck считается ПК, он использует специальный ускоренный процессор AMD x86-64 (APU), основанный на микроархитектуре Zen 2. [119]

Соглашения об отраслевых наименованиях

Поскольку AMD64 и Intel 64 по существу схожи, во многих программных и аппаратных продуктах используется один нейтральный к поставщику термин для обозначения их совместимости с обеими реализациями. Первоначальное обозначение AMD для этой архитектуры процессора «x86-64» до сих пор используется для этой цели [2] , как и вариант «x86_64». [3] [4] Другие компании, такие как Microsoft [6] и Sun Microsystems / Oracle Corporation , [5] используют сокращение «x64» в маркетинговых материалах.

Термин IA-64 относится к процессору Itanium , и его не следует путать с x86-64, поскольку это совершенно другой набор команд.

Многие операционные системы и продукты, особенно те, в которых поддержка x86-64 была реализована до выхода Intel на рынок, используют термин «AMD64» или «amd64» для обозначения как AMD64, так и Intel 64.

Лицензирование

x86-64/AMD64 был разработан исключительно AMD. AMD владеет патентами на технологии, используемые в AMD64; [122] [123] [124] для реализации AMD64 эти патенты должны быть лицензированы AMD. Intel заключила соглашение о перекрестном лицензировании с AMD, по которому AMD лицензирует свои патенты на существующие технологии x86 и лицензирует у AMD свои патенты на технологии, используемые в x86-64. [125] В 2009 году AMD и Intel урегулировали несколько судебных исков и разногласий по поводу перекрестного лицензирования, продлив свои соглашения о перекрестном лицензировании. [126] [127] [128]

Смотрите также

Примечания

  1. ^ Для набора команд используются разные названия. До запуска использовались x86-64 и x86_64, а после релиза AMD назвала его AMD64. [1] Первоначально Intel использовала названия IA-32e и EM64T , прежде чем окончательно остановилась на «Intel 64» для своей реализации. Некоторые представители отрасли, в том числе Apple [ 2] [3] [4] используют x86-64 и x86_64, в то время как другие, в частности Sun Microsystems [5] (теперь Oracle Corporation ) и Microsoft [6] используют x64. Семейство ОС BSD и несколько дистрибутивов Linux [7] [8] используют AMD64, как и Microsoft Windows внутри системы. [9] [10]
  2. ^ На практике 64-битные операционные системы обычно не поддерживают 16-битные приложения, хотя современные версии Microsoft Windows содержат ограниченный обходной путь, который эффективно поддерживает 16-битные установщики InstallShield и Microsoft ACME, автоматически заменяя их 32-битным кодом. [12]
  1. ^ The Register сообщила, что образцы степпинга G1 (0F49h) Pentium 4 будут выпущены 17 октября, а массовые поставки начнутся 14 ноября. [65] Однако в документе Intel говорится, что образцы доступны 9 сентября, тогда как 17 октября является «датой «первой доступности материалов после преобразования», которую Intel определяет как «планируемую дату, когда клиент может ожидать получения материалов после преобразования. ... клиенты должны быть готовы получить материалы после преобразования в эту дату». [66]

Рекомендации

  1. ^ «Часто задаваемые вопросы по Debian AMD64» . Дебиан Вики . Архивировано из оригинала 26 сентября 2019 года . Проверено 3 мая 2012 г.
  2. ^ abc «Модель кода x86-64». Яблоко. Архивировано из оригинала 2 июня 2012 года . Проверено 23 ноября 2012 г.
  3. ^ abc arch(1) -  Руководство по общим командам Darwin и macOS
  4. ^ abc Кевин Ван Вехтен (9 августа 2006 г.). «О: отчет об ошибке Intel XNU». Список рассылки Darwin-dev . Компьютер Apple . Архивировано из оригинала 1 февраля 2020 года . Проверено 5 октября 2006 г. Ядро и инструменты разработчика стандартизировали «x86_64» для названия архитектуры Mach-O.
  5. ^ ab «Solaris 10 на AMD Opteron». Оракул. Архивировано из оригинала 25 июля 2017 года . Проверено 9 декабря 2010 г.
  6. ^ ab «64-битные вычисления Microsoft». Майкрософт. Архивировано из оригинала 12 декабря 2010 года . Проверено 9 декабря 2010 г.
  7. ^ «Порт AMD64» . Дебиан. Архивировано из оригинала 26 сентября 2019 года . Проверено 23 ноября 2012 г.
  8. ^ «Проект Gentoo/AMD64» . Проект Генту. Архивировано из оригинала 3 июня 2013 года . Проверено 27 мая 2013 г.
  9. ^ «Детали реализации WOW64» . Архивировано из оригинала 13 апреля 2018 года . Проверено 24 января 2016 г.
  10. ^ "Класс ProcessorArchitecture" . Архивировано из оригинала 3 июня 2017 года . Проверено 24 января 2016 г.
  11. ^ abcdefghijklmnopqrstu AMD Corporation (декабрь 2016 г.). «Том 2: Системное программирование» (PDF) . Руководство программиста по архитектуре AMD64 . Корпорация АМД. Архивировано (PDF) из оригинала 13 июля 2018 г. Проверено 25 марта 2017 г.
  12. Раймонд Чен (31 октября 2013 г.). «Если в 64-битной Windows нет 16-битного слоя эмуляции, почему разрешен запуск некоторых 16-битных установщиков?». Архивировано из оригинала 14 июля 2021 года . Проверено 14 июля 2021 г.
  13. ^ «Раскрытие тайны о 64-битной производительности IBM WebSphere Application Server» (PDF) . Корпорация IBM. 6 сентября 2007 г. с. 14. Архивировано (PDF) оригинала 25 января 2022 г. Проверено 9 апреля 2010 г. На рисунках 5, 6 и 7 также показано, что 32-разрядная версия WAS запускает приложения с полной аппаратной производительностью на платформах POWER и x86-64. В отличие от некоторых 64-битных процессорных архитектур, оборудование POWER и x86-64 не эмулирует 32-битный режим. Поэтому приложения, которые не используют 64-битные функции, могут работать с полной производительностью на 32-битной версии WebSphere, работающей на вышеупомянутых 64-битных платформах.
  14. ^ «AMD раскрывает новые технологии на форуме Microporcessor» (пресс-релиз). АМД. 5 октября 1999 года. Архивировано из оригинала 8 марта 2012 года . Проверено 9 ноября 2010 г.
  15. ^ «AMD выпускает архитектурную спецификацию x86-64; обеспечивает рыночный переход на 64-битные вычисления» (пресс-релиз). АМД. 10 августа 2000 года. Архивировано из оригинала 8 марта 2012 года . Проверено 9 ноября 2010 г.
  16. ^ Мауэрер, В. (2010). Профессиональная архитектура ядра Linux. Джон Уайли и сыновья.
  17. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 3A: Руководство по системному программированию, часть 1» (PDF) . стр. 4–7. Архивировано (PDF) из оригинала 16 мая 2011 г. Проверено 10 июля 2019 г.
  18. ^ ab «Руководство разработчика BIOS и ядра (BKDG) для процессоров семейства AMD 10h» (PDF) . п. 24. Архивировано (PDF) из оригинала 18 апреля 2016 г. Проверено 27 февраля 2016 г. Физическое адресное пространство увеличено до 48 бит.
  19. ^ «Мифы и факты о 64-битном Linux» (PDF) . 2 марта 2008 г. с. 7. Архивировано из оригинала (PDF) 10 октября 2010 года . Проверено 30 мая 2010 г. Физическое адресное пространство увеличено до 48 бит.
  20. ^ Шэнли, Том (1998). Системная архитектура Pentium Pro и Pentium II . Серия системной архитектуры ПК (второе изд.). Аддисон-Уэсли. п. 445. ИСБН 0-201-30973-4.
  21. ^ Корпорация Microsoft. «Что такое PAE, NX и SSE2 и почему мой компьютер должен их поддерживать для запуска Windows 8?». Архивировано из оригинала 11 апреля 2013 года . Проверено 19 марта 2013 г.
  22. ^ abcd «Ограничения памяти для выпусков Windows». MSDN . Майкрософт . 16 ноября 2013. Архивировано из оригинала 6 января 2014 года . Проверено 20 января 2014 г.
  23. ^ «5-уровневый пейджинг и 5-уровневый EPT» (PDF) . Интел. Май 2017 г. Архивировано (PDF) из оригинала 5 декабря 2018 г. . Проверено 17 июня 2017 г.
  24. ^ Патент США 9858198, Ларри Зейлер, «Система страниц 64 КБ, поддерживающая операции со страницами 4 КБ», опубликован 29 декабря 2016 г., выдан 02 января 2018 г., передан корпорации Intel. 
  25. ^ «Материнские платы серии Opteron 6100» . Корпорация Супермикро. Архивировано из оригинала 3 июня 2010 года . Проверено 22 июня 2010 г.
  26. ^ "Супермикро XeonSolutions" . Корпорация Супермикро. Архивировано из оригинала 27 мая 2010 года . Проверено 20 июня 2010 г.
  27. ^ «Материнские платы серии Opteron 8000» . Корпорация Супермикро. Архивировано из оригинала 27 мая 2010 года . Проверено 20 июня 2010 г.
  28. ^ «Матрица продуктов Тян». Международная корпорация МиТЕК. Архивировано из оригинала 6 июня 2010 года . Проверено 21 июня 2010 г.
  29. ^ ab «Из архива AMI: AMIBIOS 8 и переход на EFI». Американские мегатренды . 8 сентября 2017 года. Архивировано из оригинала 25 октября 2021 года . Проверено 25 октября 2021 г.
  30. ^ «Intel продолжает проект Ямхилл?» Неовин . Архивировано из оригинала 5 июня 2022 года . Проверено 5 июня 2022 г.
  31. ^ «Крейг Барретт подтверждает 64-битные расширения адресов для Xeon. И Прескотт» . Спрашивающий. 17 февраля 2004 года. Архивировано из оригинала 12 января 2013 года . Проверено 20 августа 2017 г.
  32. ^ ""Обзор 64-битных вычислений", с сайта Internetnews.com" . Архивировано из оригинала 25 сентября 2012 года . Проверено 18 сентября 2006 г.
  33. ^ Лапедус, Марк. «Intel продемонстрирует линейку 64-битных процессоров CT на выставке IDF» . ЭДН . АспенКор Медиа. Архивировано из оригинала 25 мая 2021 года . Проверено 25 мая 2021 г.
  34. ^ "Архитектура Intel 64" . Интел . Архивировано из оригинала 29 июня 2011 года . Проверено 29 июня 2007 г.
  35. ^ «Intel публикует спецификацию X86-S только для 64-битной архитектуры» . www.phoronix.com .
  36. ^ ab «Представление упрощенной архитектуры Intel для будущего». Интел .
  37. ^ «VIA выпустит новую архитектуру процессоров в 1К08» (требуется подписка) . ДиджиТаймс . Архивировано из оригинала 3 декабря 2008 года . Проверено 25 июля 2007 г.
  38. Стоукс, Джон (23 января 2008 г.). «Исайя раскрыл: новую архитектуру VIA с низким энергопотреблением». Арс Техника. Архивировано из оригинала 27 января 2008 года . Проверено 24 января 2008 г.
  39. ^ «VIA запускает семейство процессоров VIA Nano» (пресс-релиз). С ПОМОЩЬЮ . 29 мая 2008 года. Архивировано из оригинала 3 февраля 2019 года . Проверено 25 мая 2017 г.
  40. ^ «Введение в архитектуру VIA Isaiah» (PDF) . С ПОМОЩЬЮ . 23 января 2008 г. Архивировано из оригинала (PDF) 7 сентября 2008 г. . Проверено 31 июля 2013 г.
  41. Веймер, Флориан (10 июля 2020 г.). «Новые уровни микроархитектуры x86-64». llvm-dev (список рассылки). Архивировано из оригинала 14 апреля 2021 года . Проверено 11 марта 2021 г.
  42. Веймер, Флориан (5 января 2021 г.). «Создание Red Hat Enterprise Linux 9 для уровня микроархитектуры x86-64-v2». Блог разработчиков Red Hat . Архивировано из оригинала 20 февраля 2022 года . Проверено 22 марта 2022 г.
  43. ^ «Информация о системе низкого уровня двоичного интерфейса приложения System V» . Репозиторий x86-64 psABI . 29 января 2021 года. Архивировано из оригинала 2 февраля 2021 года . Получено 11 марта 2021 г. — через GitLab .
  44. ^ «Выпущена версия QEMU 7.2.0 — QEMU» . www.qemu.org . Архивировано из оригинала 21 декабря 2022 года . Проверено 9 января 2023 г.
  45. ^ "Журнал изменений/7.2 - QEMU" . wiki.qemu.org . Архивировано из оригинала 9 января 2023 года . Проверено 9 января 2023 г.
  46. Уоссон, Скотт (23 марта 2005 г.). «64-битные вычисления в теории и практике». Технический отчет . Архивировано из оригинала 12 марта 2011 года . Проверено 22 марта 2011 г.
  47. ^ «Обсуждение переполнения стека» . Март 2021. Архивировано из оригинала 11 января 2023 года . Проверено 2 марта 2021 г.
  48. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2 (2A, 2B и 2C): Справочник по набору команд, A – Z» (PDF) . Интел. Сентябрь 2013. стр. 4–397. Архивировано (PDF) из оригинала 20 октября 2013 г. Проверено 21 января 2014 г.
  49. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2 (2A, 2B и 2C): Справочник по набору команд, Аризона» (PDF) . Интел. Сентябрь 2013. стр. 4–400. Архивировано (PDF) из оригинала 20 октября 2013 г. Проверено 21 января 2014 г.
  50. ^ «Как отказ от сегментации в длинном режиме AMD64 сломал VMware» . Pagetable.com. 9 ноября 2006 года. Архивировано из оригинала 18 июля 2011 года . Проверено 2 мая 2010 г.
  51. ^ «VMware и технология виртуализации ЦП» (PDF) . VMware. Архивировано (PDF) из оригинала 17 июля 2011 г. Проверено 8 сентября 2010 г.
  52. ^ «Архив Linux-Kernel: [ИСПРАВЛЕНИЕ 2/5] KVM: svm: запретить EFER.LMSLE на оборудовании, которое его не поддерживает» . lkml.indiana.edu . Проверено 3 ноября 2023 г.
  53. ^ «Руководство программиста по архитектуре AMD64, том 3: Универсальные и системные инструкции» (PDF) . АМД. Май 2018. с. 419. Архивировано (PDF) из оригинала 20 августа 2018 г. . Проверено 2 августа 2018 г.
  54. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2 (2A, 2B и 2C): Справочник по набору команд, Аризона» (PDF) . Интел. Сентябрь 2014 г., стр. 4–412. Архивировано (PDF) из оригинала 13 января 2015 г. Проверено 28 декабря 2014 г.
  55. Хади Брайс, Значение инструкции LFENCE для x86, 14 мая 2018 г. Архивировано 10 июня 2023 г.
  56. ^ «Живая миграция с помощью технологии расширенной миграции AMD-V™» (PDF) . http://developer.amd.com . Архивировано (PDF) из оригинала 6 декабря 2022 г. Проверено 30 июня 2022 г.
  57. ^ Магед М. Майкл. «Практические реализации LL/SC/VL без блокировки и ожидания с использованием 64-битного CAS» (PDF) . ИБМ. Архивировано (PDF) из оригинала 2 мая 2013 г. Проверено 21 января 2014 г.
  58. ^ Дарвоу (20 августа 2004 г.). «Почему виртуальное адресное пространство составляет 4 ГБ?». Старая новая вещь . Майкрософт. Архивировано из оригинала 26 марта 2017 года . Проверено 25 марта 2017 г.
  59. ^ ab «Системные требования — Windows 8.1». Архивировано из оригинала 28 апреля 2014 года . Проверено 27 апреля 2014 г. Чтобы установить 64-битную ОС на 64-битный ПК, ваш процессор должен поддерживать CMPXCHG16b, PrefetchW и LAHF/SAHF.
  60. Петков, Борислав (10 августа 2009 г.). «Re: [PATCH v2] x86: очистить неправильно установленный флаг X86_FEATURE_LAHF_LM». Список рассылки ядра Linux . Архивировано из оригинала 11 января 2023 года . Проверено 30 июня 2022 г.
  61. ^ «Руководство по редакции процессоров AMD Athlon 64 и AMD Opteron» (PDF) . АМД. Архивировано (PDF) из оригинала 24 августа 2009 г. Проверено 18 июля 2009 г.
  62. ^ «Уведомление об изменении продукта 105224-01» (PDF) . Интел. Архивировано из оригинала (PDF) 17 ноября 2005 г.
  63. ^ «Процессор Intel® Pentium® D серии 800 и обновление спецификации процессора Intel® Pentium® Extreme Edition 840» (PDF) . Архивировано (PDF) оригинала 18 мая 2021 г. Проверено 30 июня 2022 г.
  64. ^ «Intel Xeon 2,8 ГГц — NE80551KG0724MM / BX80551KG2800HA» . CPU-Мир . Архивировано из оригинала 28 июня 2020 года . Проверено 30 июня 2022 г.
  65. Смит, Тони (23 августа 2005 г.). «Intel настраивает EM64T для полной совместимости с AMD64». Регистр . Архивировано из оригинала 30 июня 2022 года . Проверено 30 июня 2022 г.
  66. ^ «Уведомление об изменении продукта 105271 – 00» (PDF) . Интел. Архивировано из оригинала (PDF) 17 ноября 2005 г.
  67. ^ 0F47h ​​дебютировал в степпинге B0 Pentium D 21 октября [62] [63], но 0F48h, который также поддерживает LAHF/SAHF, был выпущен 10 октября в двухъядерном процессоре Xeon . [64] [а]
  68. ^ «Уведомление об изменении продукта 104101 – 00» (PDF) . Интел. Архивировано из оригинала (PDF) 16 июля 2004 г.
  69. ^ «Технические данные 64-разрядного процессора Intel® Xeon™ MP с кэшем L3 объемом до 8 МБ» (PDF) . Архивировано (PDF) из оригинала 17 ноября 2022 г. Проверено 17 ноября 2022 г.
  70. ^ «Джастин Боггс на Microsoft PDC 2008» . п. 5. Архивировано из оригинала 17 ноября 2022 года . Проверено 17 ноября 2022 г.
  71. ^ Уолдекер, Брайан. «Многоядерные процессоры AMD Opteron» (PDF) . п. 13. Архивировано (PDF) из оригинала 13 декабря 2022 г. Проверено 17 ноября 2022 г.
  72. ^ «Техническое описание процессора Intel® Xeon® серии 7500, том 2» (PDF) . Архивировано (PDF) из оригинала 17 ноября 2022 г. Проверено 17 ноября 2022 г.
  73. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32» . Сентябрь 2014. с. 2-21. Архивировано из оригинала 14 мая 2019 г. Архитектура Intel 64 увеличивает линейное адресное пространство для программного обеспечения до 64 бит и поддерживает физическое адресное пространство до 46 бит.
  74. Логан, Том (14 ноября 2011 г.). «Обзор Intel Core i7-3960X». Архивировано из оригинала 28 марта 2016 года . Проверено 1 июля 2022 г.
  75. ^ Да, Хуайшэн. «Введение в 5-уровневую подкачку страниц в масштабируемых процессорах Intel Xeon 3-го поколения с Linux» (PDF) . Леново. Архивировано (PDF) из оригинала 26 мая 2022 г. Проверено 1 июля 2022 г.
  76. Кеннеди, Патрик (10 ноября 2022 г.). «AMD EPYC Genoa превосходит Intel Xeon в потрясающем стиле» . Сервис TheHome . п. 2. Архивировано из оригинала 17 ноября 2022 года . Проверено 17 ноября 2022 г.
  77. ^ «Статистика | ТОП500 суперкомпьютерных сайтов» . Топ500.org. Архивировано из оригинала 19 марта 2014 года . Проверено 22 марта 2014 г.
  78. ^ «Генератор подсписков | TOP500 суперкомпьютерных сайтов» . www.top500.org . Архивировано из оригинала 7 декабря 2018 года . Проверено 6 декабря 2018 г.
  79. ^ «Справочное руководство по архитектуре набора команд сопроцессора Intel® Xeon PhiTM» (PDF) . Интел. 7 сентября 2012 г. раздел B.2 Ограничения 64-разрядного режима сопроцессора Intel Xeon Phi. Архивировано (PDF) из оригинала 21 мая 2014 г. Проверено 21 мая 2014 г.
  80. ^ «Intel обеспечивает работу самого быстрого суперкомпьютера в мире, раскрывает новые и будущие высокопроизводительные вычислительные технологии» . Архивировано из оригинала 22 июня 2013 года . Проверено 21 июня 2013 г.
  81. ^ "cvs commit: src/sys/amd64/amd64 genassym.c src/sys/amd64/include asm.hatomic.h bootinfo.h coredump.h cpufunc.h elf.h endian.h exec.h float.h fpu .hframe.h globaldata.h ieeefp.h limit.h lock.h md_var.h param.h pcb.h pcb_ext.h pmap.h proc.h Profile.h psl.h ..." Архивировано из оригинала на 4 декабря 2008 года . Проверено 3 мая 2009 г.
  82. ^ «Порт AMD64» . Архивировано из оригинала 18 мая 2010 года . Проверено 3 мая 2009 г.
  83. ^ "DragonFlyBSD: GoogleSoC2008" . Архивировано из оригинала 27 апреля 2009 года . Проверено 3 мая 2009 г.
  84. ^ «Лето принятых студентов Code» . Архивировано из оригинала 4 сентября 2010 года . Проверено 3 мая 2009 г.
  85. ^ "DragonFlyBSD: выпуск24" . Архивировано из оригинала 23 сентября 2009 года . Проверено 3 мая 2009 г.
  86. ^ «Учебник по входу в защищенный и длинный режим из DOS». Архивировано из оригинала 22 февраля 2017 года . Проверено 6 июля 2008 г.
  87. Энди Клин (26 июня 2001 г.). «Портирование Linux на x86-64». Архивировано из оригинала 10 сентября 2010 года. Статус: Ядро, компилятор, инструментарий работают. Ядро загружается и работает на симуляторе и используется для переноса пользовательского пространства и запуска программ.
  88. ^ Энди Клин. «Страница Энди Клина». Архивировано из оригинала 7 декабря 2009 года . Проверено 21 августа 2009 г. Это был оригинальный документ, описывающий порт ядра Linux x86-64, когда x86-64 был доступен только на симуляторах.
  89. ^ «Часто задаваемые вопросы по Arch64» . 23 апреля 2012. Архивировано из оригинала 14 мая 2012 года . Проверено 11 мая 2012 г. Вы можете использовать пакеты multilib или chroot i686.
  90. ^ аб Торстен Лимхейс (13 сентября 2011 г.). «Журнал ядра: x32 ABI имеет около 64-битных недостатков». www.h-online.com. Архивировано из оригинала 28 октября 2011 года . Проверено 1 ноября 2011 г.
  91. ^ ab «x32 — собственный 32-битный ABI для x86-64». linuxplumbersconf.org. Архивировано из оригинала 5 мая 2012 года . Проверено 1 ноября 2011 г.
  92. ^ аб "x32-аби". Сайты Google. Архивировано из оригинала 30 октября 2011 года . Проверено 1 ноября 2011 г.
  93. ^ «Порт AMD64» . debian.org. Архивировано из оригинала 26 сентября 2019 года . Проверено 29 октября 2011 г.
  94. ^ «5-уровневая подкачка». ядро.орг . Проверено 7 февраля 2024 г.
  95. ^ «Apple – Mac OS X Xcode 2.4 Примечания к выпуску: Инструменты компилятора» . Apple Inc. , 11 апреля 2007 г. Архивировано из оригинала 22 апреля 2009 г. . Проверено 19 ноября 2012 г.
  96. ^ «Apple – Mac OS X Leopard – Технология – 64-разрядная версия» . Apple Inc. Архивировано из оригинала 12 января 2009 года . Проверено 19 ноября 2012 г.
  97. ^ «Mac OS X v10.6: компьютеры Mac, использующие 64-битное ядро» . Apple Inc. Архивировано из оригинала 31 августа 2009 года . Проверено 29 ноября 2012 г.
  98. ^ Джон Сиракузы. «Mac OS X 10.6 Snow Leopard: обзор Ars Technica». ООО «Арс Техника». Архивировано из оригинала 9 октября 2009 года . Проверено 20 июня 2010 г.
  99. ^ «Технология Mac OS X». Apple Inc. Архивировано из оригинала 28 марта 2011 года . Проверено 19 ноября 2012 г.
  100. ^ Шмид, Дж; Томасес, К; Рэми, Дж; Чекалла, У; Матье, Б; Абхирам, Р. (10 сентября 2019 г.). «Итак, у нас нет решения для Каталины… пока». Блог CodeWeavers . Архивировано из оригинала 29 сентября 2021 года . Проверено 29 сентября 2021 г.
  101. Томасес, Кен (11 декабря 2019 г.). «win32 на macOS». Винный штаб-квартира . Архивировано из оригинала 11 ноября 2020 года . Проверено 29 сентября 2021 г.
  102. ^ «Microsoft повышает ограничение скорости с появлением 64-разрядных выпусков Windows Server 2003 и Windows XP Professional» . Центр новостей Microsoft (пресс-релиз). 25 апреля 2005 года . Проверено 29 января 2024 г.
  103. ^ «Описание 64-разрядных версий Windows Server 2003 и Windows XP Professional x64 Edition». Поддержка Майкрософт . Архивировано из оригинала 20 апреля 2016 года . Проверено 14 августа 2016 г.
  104. ^ «Пакет средств администрирования Windows Server 2003 SP1» . Центр загрузки Microsoft . Архивировано из оригинала 27 августа 2016 года . Проверено 14 августа 2016 г.
  105. ^ ab "/LARGEADDRESSAWARE (обработка больших адресов)". Документация по Visual Studio 2022 — Справочник по компоновщику MSVC — Параметры компоновщика MSVC . Майкрософт. Архивировано из оригинала 21 декабря 2022 года . Проверено 21 декабря 2022 г. Параметр /LARGEADDRESSAWARE сообщает компоновщику, что приложение может обрабатывать адреса размером более 2 гигабайт.
  106. ^ abc Мэтт Питрек (май 2006 г.). «Все, что вам нужно знать, чтобы начать программировать 64-битные системы Windows». Майкрософт . Проверено 18 апреля 2023 г.
  107. ^ Крис Сент-Аманд (январь 2006 г.). «Переход на x64». Майкрософт . Проверено 18 апреля 2023 г.
  108. ^ «За пределом адресации 44-битной виртуальной памяти Windows x86-64» . Архивировано из оригинала 23 декабря 2008 года . Проверено 2 июля 2009 г.
  109. ^ ab «64-битное программирование для разработчиков игр» . Проверено 18 апреля 2023 г.
  110. ^ «Ограничения памяти для выпусков Windows и Windows Server». Майкрософт . Проверено 18 апреля 2023 г.
  111. Кингсли-Хьюз, Адриан (23 августа 2010 г.). «AMD прощается с набором инструкций 3DNow!». ЗДНет . Архивировано из оригинала 8 января 2023 года . Проверено 8 января 2023 г.
  112. ^ «Общие рекомендации по портированию». Руководство по программированию для 64-битной Windows. Документы Майкрософт . Проверено 18 апреля 2023 г.
  113. ^ «История драйверов для Microsoft SQL Server». Документы Майкрософт . Проверено 18 апреля 2023 г.
  114. ^ «Поставщик Microsoft OLE DB для Jet и драйвер ODBC Jet доступны только в 32-разрядных версиях» . Доступ в офис. Документы Майкрософт . КБ957570 . Проверено 18 апреля 2023 г.
  115. Ананд Лал Шимпи (21 мая 2013 г.). «Xbox One: анализ оборудования и сравнение с PlayStation 4». Анандтех. Архивировано из оригинала 7 июня 2013 года . Проверено 22 мая 2013 г.
  116. ^ «Тест технических характеристик: Xbox One против PlayStation 4» . Игровой информер. 21 мая 2013. Архивировано из оригинала 7 июня 2013 года . Проверено 22 мая 2013 г.
  117. ^ «Чего ожидать от запуска Sony PlayStation 5 в ноябре» . Индийский экспресс . 31 августа 2020 года. Архивировано из оригинала 19 сентября 2020 года . Проверено 14 сентября 2020 г.
  118. ^ Катресс, доктор Ян. «Живой блог Hot Chips 2020: системная архитектура Microsoft Xbox Series X (18:00 по тихоокеанскому времени)» . www.anandtech.com . Архивировано из оригинала 17 сентября 2020 года . Проверено 14 сентября 2020 г.
  119. Холлистер, Шон (12 ноября 2021 г.). «Steam Deck: пять важных вещей, которые мы узнали на саммите разработчиков Valve». Грань . Архивировано из оригинала 7 февраля 2022 года . Проверено 12 ноября 2021 г.
  120. ^ «Поля процессорной архитектуры» . Архивировано из оригинала 28 апреля 2015 года . Проверено 4 сентября 2013 г.
  121. ^ «Пример файла из дерева исходного кода ядра Linux 3.7.8, показывающий использование термина x86_64» . Архивировано из оригинала 23 сентября 2005 года . Проверено 17 февраля 2013 г.
  122. ^ США 6877084 
  123. ^ США 6889312 
  124. ^ США 6732258 
  125. ^ «Соглашение о перекрестном патентном лицензировании между AMD и Intel» . 1 января 2001 года. Архивировано из оригинала 21 июня 2007 года . Проверено 23 августа 2009 г.
  126. ^ «Мировое соглашение AMD Intel» . Архивировано из оригинала 7 июля 2017 года . Проверено 18 сентября 2017 г.
  127. Стивен Шенкленд и Джонатан Э. Скиллингс (12 ноября 2009 г.). «Intel выплатит 1,25 миллиарда драмов в рамках антимонопольного урегулирования». CNET. Архивировано из оригинала 8 ноября 2012 года . Проверено 24 апреля 2012 г.
  128. Смит, Райан (12 ноября 2009 г.). «AMD и Intel урегулируют свои разногласия: AMD становится без фабрик». АнандТех . Архивировано из оригинала 13 мая 2010 года.

Внешние ссылки