х86-64
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 (также по-разному именуемая 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-битной архитектуры с 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 является наличие 64-битных регистров процессора общего назначения (например, rax ), 64-битные целочисленные арифметические и логические операции, а также 64-битные виртуальные адреса . [16] Дизайнеры воспользовались возможностью внести и другие улучшения.
Заметные изменения в 64-битных расширениях включают:
- 64-битные целочисленные возможности
- Все регистры общего назначения (GPR) расширены с 32 бит до 64 бит, и все арифметические и логические операции, операции между памятью и регистром и между регистрами и т. д. могут работать непосредственно с 64-битными целыми числами. По умолчанию операции push и pop в стеке выполняются с шагом 8 байт, а ширина указателей составляет 8 байт.
- Дополнительные регистры
- Помимо увеличения размера регистров общего назначения, количество именованных регистров общего назначения увеличено с восьми (т.е. еах , екх , edx , ебх , особенно , эбп , как , edi ) в x86 до 16 (т.е. ракс , rcxRCX рдкс , РБХ , спс , РБП , рси , РДИ , р8 , р9 , р10 , р11 , р12 , р13 , р14 , р15 ). Таким образом, можно хранить больше локальных переменных в регистрах, а не в стеке, и позволить регистрам хранить часто используемые константы; Аргументы для небольших и быстрых подпрограмм также могут в большей степени передаваться в регистрах.
- AMD64 по-прежнему имеет меньше регистров, чем многие RISC наборы инструкций (например, Power ISA имеет 32 GPR; 64-битные ARM , RISC-VI I, SPARC , Alpha , MIPS и PA-RISC имеют 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 EiB (2 64 байты). [17] Для сравнения: всего 4 ГиБ (2 32 байт) для x86. [18]
- Это означает, что с очень большими файлами можно работать, отображая весь файл в адресное пространство процесса (что часто намного быстрее, чем работа с вызовами чтения/записи файла), вместо необходимости отображать области файла в адресное пространство и из него. адресное пространство.
- Большее физическое адресное пространство
- Исходная реализация архитектуры AMD64 реализовала 40-битные физические адреса и могла адресовать до 1 ТиБ (2 ТиБ). 40 байт) оперативной памяти. [11] : 24 Текущие реализации архитектуры AMD64 (начиная с микроархитектуры AMD 10h ) расширяют это до 48-битных физических адресов. [19] и, следовательно, может адресовать до 256 ТиБ (2 48 байт) оперативной памяти. Архитектура позволяет в будущем расширить это число до 52 бит. [11] : 24 [20] (ограничено форматом записи таблицы страниц); [11] : 131 это позволит адресовать до 4 ПиБ ОЗУ. Для сравнения, 32-битные процессоры x86 ограничены 64 ГиБ ОЗУ в режиме расширения физического адреса (PAE). [21] или 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. [22] Инструкции SSE3 и более поздние наборы инструкций Streaming SIMD Extensions не являются стандартными функциями архитектуры.
- Бит запрета выполнения
- Бит 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 EiB ), которые будут использоваться. Это будет примерно в четыре миллиарда раз больше размера виртуального адресного пространства на 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 половину адресного пространства с более высоким адресом (называемое пространством ядра ) берут себе ) и оставляют половину с более низким адресом ( пространство пользователя ) для кода приложения, пользовательского режима. стеки, кучи и другие области данных. [23] Конструкция «канонического адреса» гарантирует, что каждая реализация, совместимая с AMD64, по сути, имеет две половины памяти: нижняя половина начинается с 00000000'00000000 и «растет вверх» по мере того, как становится доступно больше битов виртуального адреса, в то время как верхняя половина «прикреплена». вверх адресного пространства и растет вниз. Кроме того, обеспечение «канонической формы» адресов путем проверки неиспользуемых битов адреса предотвращает их использование операционной системой в помеченных указателях, таких как флаги, маркеры привилегий и т. д., поскольку такое использование может стать проблематичным, когда архитектура будет расширена для реализации более виртуальных биты адреса.
Первые версии Windows для x64 даже не использовали полные 256 ТиБ; они были ограничены всего 8 ТиБ пользовательского пространства и 8 ТиБ пространства ядра. [23] Windows не поддерживала все 48-битное адресное пространство до Windows 8.1 , выпущенной в октябре 2013 года. [23]
Структура таблицы страниц
[ редактировать ]64-битный режим адресации (« длинный режим ») представляет собой расширенный набор расширений физических адресов (PAE); из-за этого размеры страниц могут составлять 4 КиБ (2 12 байт) или 2 МБ (2 21 байты). [11] : 120 Длинный режим также поддерживает размеры страниц 1 ГиБ (2 30 байты). [11] : 120 Вместо трехуровневой системы таблиц страниц , используемой системами в режиме PAE, системы, работающие в длинном режиме, используют четыре уровня таблицы страниц: таблица указателей каталога страниц PAE расширена с четырех записей до 512, а также дополнительная карта страниц уровня 4. (PML4) Добавлена таблица, содержащая 512 записей в 48-битных реализациях. [11] : 131 Полная иерархия сопоставлений страниц размером 4 КиБ для всего 48-битного пространства потребует чуть больше 512 ГиБ памяти (около 0,195% от виртуального пространства в 256 ТиБ).
64-битная запись таблицы страниц Биты: 63 62 … 52 51 … 32 Содержание: НХ сдержанный Биты 51…32 базового адреса Биты: 31 … 12 11 … 9 8 7 6 5 4 3 2 1 0 Содержание: Биты 31…12 базового адреса игн. Г ПАТ Д А ПКД ПВТ НАС Ч/З П
Intel реализовала схему с 5-уровневой таблицей страниц , которая позволяет процессорам Intel 64 поддерживать 57-битное виртуальное адресное пространство. [24] Дальнейшие расширения могут обеспечить полное 64-битное виртуальное адресное пространство и физическую память с 12-битными дескрипторами таблицы страниц и 16- или 21-битными смещениями памяти для размеров выделения страниц 64 КиБ и 2 МиБ; запись таблицы страниц будет расширена до 128 бит для поддержки дополнительных аппаратных флагов для размера страницы и размера виртуального адресного пространства. [25]
Ограничения операционной системы
[ редактировать ]Операционная система также может ограничивать виртуальное адресное пространство. Подробности, если применимо, приведены в разделе « Совместимость и характеристики операционной системы ».
Подробности о физическом адресном пространстве
[ редактировать ]Современные процессоры AMD64 поддерживают физическое адресное пространство до 2 48 байт оперативной памяти или 256 ТиБ . [19] Однако по состоянию на 2020 год [update], не было известных материнских плат x86-64 , поддерживающих 256 ТиБ ОЗУ. [26] [27] [28] [29] [ не удалось пройти проверку ] Операционная система может налагать дополнительные ограничения на объем используемой или поддерживаемой оперативной памяти. Подробности по этому вопросу приведены в разделе « Совместимость и характеристики операционных систем » данной статьи.
Режимы работы
[ редактировать ]Архитектура имеет два основных режима работы: длительный режим и устаревший режим.
Операционная | операционная система Требуется | Тип выполняемого кода | Размер (в битах) | Количество регистров общего назначения | ||
---|---|---|---|---|---|---|
режим | подрежим | адреса | операнды ( по умолчанию выделены курсивом ) | |||
Длинный режим | 64-битный режим | 64-битная ОС, 64-битная прошивка UEFI или две предыдущие, взаимодействующие через интерфейс UEFI 64-битной прошивки. | 64-битная | 64 | 8, 16, 32 , 64 | 16 |
Режим совместимости | Загрузчик или 64-битная ОС | 32-битный | 32 | 8, 16, 32 | 8 | |
16-битный защищенный режим | 16 | 8, 16 , 32 | 8 | |||
Устаревший режим | Защищенный режим | Загрузчик , 32-битная ОС, 32-битная прошивка UEFI или две последние, взаимодействующие через интерфейс UEFI прошивки. | 32-битный | 32 | 8, 16, 32 | 8 |
16-битная ОС с защищенным режимом | 16-битный защищенный режим | 16 | 8, 16 , 32 [м 1] | 8 | ||
Виртуальный режим 8086 | 16-битный защищенный режим или 32-битная ОС | подмножество реального режима | 16 | 8, 16 , 32 [м 1] | 8 | |
Нереальный режим | Загрузчик или ОС реального режима | реальный режим | 16, 20, 32 | 8, 16 , 32 [м 1] | 8 | |
Реальный режим | Загрузчик , операционная система реального режима или любая операционная система, взаимодействующая с BIOS прошивки. интерфейсом [30] | реальный режим | 16, 20, 21 | 8, 16 , 32 [м 1] | 8 |
- ^ Jump up to: а б с д Обратите внимание, что 16-битный код, написанный для 80286 и ниже, не использует 32-битные инструкции операндов. Код, написанный для 80386 и выше, может использовать префикс переопределения размера операнда (0x66). Обычно этот префикс используется кодом защищенного и длинного режима с целью использования 16-битных операндов, поскольку этот код будет выполняться в сегменте кода с размером операнда по умолчанию 32 бита. В реальном режиме размер операнда по умолчанию составляет 16 бит, поэтому префикс 0x66 интерпретируется по-другому, изменяя размер операнда на 32 бита.
Длинный режим
[ редактировать ]Длинный режим — это предполагаемый основной режим работы архитектуры; это комбинация собственного 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 . [30]
Интел 64
[ редактировать ]Intel 64 — это реализация Intel x86-64, используемая и реализованная в различных процессорах Intel.
История
[ редактировать ]Исторически AMD разрабатывала и производила процессоры с наборами инструкций, созданными по образцу исходных разработок Intel, но с x86-64 роли поменялись местами: Intel оказалась в положении принятия ISA , созданного AMD как расширение собственной линейки процессоров Intel x86.
Первоначально проект Intel имел кодовое название Yamhill. [31] (после реки Ямхилл в долине Уилламетт в Орегоне). После нескольких лет отрицания его существования Intel объявила на IDF в феврале 2004 года , что проект действительно находится в стадии реализации. Тогдашний председатель Intel Крейг Барретт признал, что это был один из их самых плохо охраняемых секретов. [32] [33]
Название этого набора инструкций Intel менялось несколько раз. В ЦАХАЛе использовалось имя CT. [34] (предположительно [ оригинальное исследование? ] для Clackamas Technology — еще одно кодовое название от реки Орегон ); через несколько недель они начали называть его IA-32e (для расширений IA-32 ), а в марте 2004 года представили «официальное» название EM64T (технология расширенной памяти 64). В конце 2006 года Intel начала вместо этого использовать название Intel 64 для своей реализации, параллельно с использованием AMD названия AMD64. [35]
Первым процессором, в котором реализована технология 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. [36] В новой архитектуре будет удалена поддержка 16-битных и 32-битных операционных систем, а 32-битные программы по-прежнему будут работать под управлением 64-битной ОС. ЦП больше не будет иметь устаревшего режима и будет запускаться непосредственно в 64-битном длинном режиме . Будет возможность переключиться на 5-уровневую разбивку по страницам, не переходя в невыгружаемый режим. Конкретные удаленные функции включают в себя: [37]
- Ворота сегментации
- 32-битное кольцо 0
- VT-x больше не будет эмулировать эту функцию.
- Кольца 1 и 2
- Порт ввода/вывода Ring 3 ( В / ВЫХОД ) доступ; ввод -вывод с отображением портов см.
- Строковый порт ввода-вывода ( ИНС / ВЫХОДЫ )
- Реальный режим (включая огромный реальный режим ), 16-битный защищенный режим, VM86
- 16-битный режим адресации
- VT-x больше не будет обеспечивать неограниченный режим.
- 8259 поддержка ; единственным поддерживаемым APIC будет X2APIC.
- Некоторые неиспользуемые биты режима операционной системы
- 16-битный и 32-битный IPI запуска (SIPI)
Intel считает, что это изменение логично следует за удалением шлюза A20 в 2008 году и прекращением поддержки 16-битных и 32-битных ОС в прошивке Intel в 2020 году. Поддержка устаревших операционных систем будет осуществляться посредством виртуализации с аппаратным ускорением и/или звонка 0 . эмуляция [37]
Реализация x86-64 от VIA
[ редактировать ]VIA Technologies представила свою первую реализацию архитектуры x86-64 в 2008 году после пяти лет разработки ее подразделением ЦП Centaur Technology . [38] 64-битная архитектура под кодовым названием «Исайя» была представлена 24 января 2008 года. [39] и запущен 29 мая под VIA Nano . брендом [40]
Процессор поддерживает ряд специфичных для VIA расширений x86, предназначенных для повышения эффективности устройств с низким энергопотреблением.Ожидается, что архитектура Isaiah будет в два раза быстрее по целочисленной производительности и в четыре раза быстрее по производительности с плавающей запятой предыдущего поколения , чем VIA Esther при эквивалентной тактовой частоте . Ожидается, что энергопотребление будет на уровне процессоров VIA предыдущего поколения, а расчетная тепловая мощность будет варьироваться от 5 Вт до 25 Вт. [41] Будучи совершенно новой конструкцией, архитектура Isaiah была построена с поддержкой таких функций, как набор команд x86-64 и виртуализация x86 , которые были недоступны в ее предшественниках, линейке VIA C7 , сохраняя при этом свои расширения шифрования.
Уровни микроархитектуры
[ редактировать ]В 2020 году благодаря сотрудничеству AMD, Intel, Red Hat и SUSE были определены три уровня микроархитектуры (или уровня функций) поверх базового уровня x86-64: x86-64-v2, x86-64-v3 и x86. -64-в4. [42] [43] Эти уровни определяют конкретные функции, на которые программисты могут ориентироваться для оптимизации времени компиляции. На каждом уровне представлены следующие функции: [44]
Уровень x86-64 | Возможности процессора | Пример инструкции | Поддерживаемые процессоры |
---|---|---|---|
v1 | КМОВ | смов | все процессоры x86-64 |
CX8 | cmpxchg8b | ||
ФПУ | флд | ||
FXSR | fxsave | ||
ММХ | Эммс | ||
ОСFXSR | fxsave | ||
ПКЭ | системный вызов | ||
СШЭ | cvtss2si | ||
SSE2 | cvtpi2pd | ||
v2 | CMPXCHG16B | cmpxchg16b | Intel Nehalem и новые «большие» ядра Intel |
ЛАХФ-САХФ | лахф | ||
ПОПКНТ | попкнт | ||
SSE3 | добавитьсубпд | ||
SSE4_1 | blendpd | ||
SSE4_2 | пкмпестри | ||
СССЭ3 | пшуфб | ||
v3 | AVX | все | Intel Haswell и более новые «большие» ядра Intel (только модели с поддержкой AVX2) |
AVX2 | впермд | ||
ИМТ1 | и н | ||
ИМТ2 | bzhi | ||
F16C | vcvtph2ps | ||
ФМА | vfmadd132pd | ||
ЛЗКТ | lzcnt | ||
МОВБЕ | мовбе | ||
OSXSAVE | xgetbv | ||
v4 | AVX512F | кмовв | Intel Skylake и более новые «большие» ядра Intel (только модели с поддержкой AVX512) |
AVX512BW | вдбпсадбв | ||
AVX512CD | вплзкнтд | ||
AVX512DQ | vpmullq | ||
AVX512VL | — |
Все уровни включают функции, найденные на предыдущих уровнях. Расширения набора команд, не связанные с вычислениями общего назначения, включая AES-NI и RDRAND , исключены из требований уровня.
Различия между AMD64 и Intel 64
[ редактировать ]Хотя эти два набора команд почти идентичны, между ними существуют некоторые различия в семантике некоторых редко используемых машинных инструкций (или ситуаций), которые в основном используются для системного программирования . [47] Компиляторы обычно создают исполняемые файлы (т.е. машинный код ), в которых отсутствуют какие-либо различия, по крайней мере, для обычных прикладных программ . Поэтому это представляет интерес главным образом для разработчиков компиляторов, операционных систем и т.п., которым приходится иметь дело с индивидуальными и специальными системными инструкциями.
Последние реализации
[ редактировать ]- Интел 64
BSF
иBSR
Инструкции действуют иначе, чем инструкции AMD64, когда источник равен нулю, а размер операнда составляет 32 бита. Процессор устанавливает нулевой флаг и оставляет старшие 32 бита адресата неопределенными. [ нужна ссылка ] Обратите внимание, что в документах Intel указано, что регистр назначения в этом случае имеет неопределенное значение, но на практике в микросхемах реализуется то же поведение, что и в AMD (назначение не изменено). Отдельное утверждение о том, что биты в старших 32-х битах, возможно, не сохраняются, не было проверено, а было исключено только для Core 2 и Skylake. [48] не все микроархитектуры Intel, такие как 64-битный Pentium 4 или маломощный Atom. - AMD64 требует другого формата обновления микрокода и управляющих MSR (регистров, зависящих от модели), в то время как Intel 64 реализует обновление микрокода без изменений по сравнению со своими 32-битными процессорами.
- В Intel 64 отсутствуют некоторые MSR, которые считаются архитектурными в AMD64. К ним относятся
SYSCFG
,TOP_MEM
, иTOP_MEM2
. - Intel 64 позволяет
SYSCALL
/SYSRET
только в 64-битном режиме (не в режиме совместимости), [49] и позволяетSYSENTER
/SYSEXIT
в обоих режимах. [50] AMD64 не хватаетSYSENTER
/SYSEXIT
в обоих подрежимах длительного режима . [11] : 33 - В 64-битном режиме ближайшие ветки с префиксом 66H (переопределение размера операнда) ведут себя по-другому. Intel 64 игнорирует этот префикс: инструкция имеет расширенное смещение 32-битного знака, а указатель инструкции не обрезается. AMD64 использует в инструкции 16-битное поле смещения и очищает верхние 48 бит указателя инструкции.
- На Intel 64, но не на AMD64,
REX.W
префикс можно использовать с инструкциями дальнего указателя (LFS
,LGS
,LSS
,JMP FAR
,CALL FAR
), чтобы увеличить размер аргумента дальнего указателя до 80 бит (64-битное смещение + 16-битный сегмент). - В Intel 64 отсутствует возможность сохранять и восстанавливать сокращенную (и, следовательно, более быструю) версию состояния с плавающей запятой (включая
FXSAVE
иFXRSTOR
инструкции). [ нужны разъяснения ] - В процессорах AMD, начиная с Opteron Rev. E и Athlon 64 Rev. D, вновь введена ограниченная поддержка сегментации с помощью бита Long Mode Segment Limit Enable (LMSLE), чтобы упростить виртуализацию 64-битных гостевых систем. [51] [52] Поддержка LMLSE была удалена в процессоре Zen 3. [53]
- При возврате на неканонический адрес с использованием
SYSRET
, процессоры AMD64 выполняют обработчик ошибок общей защиты на уровне привилегий 3, [54] тогда как на процессорах Intel 64 он выполняется с уровнем привилегий 0. [55] - Гарантии порядка, предоставляемые некоторыми инструкциями по упорядочиванию памяти, такими как
LFENCE
иMFENCE
отличаются между Intel 64 и AMD64:LFENCE
выполняет сериализацию отправки (что позволяет использовать ее в качестве ограждения от спекуляций ) на Intel 64, но архитектурно не гарантируется сериализация отправки на AMD64. [56]MFENCE
— это инструкция полной сериализации (включая сериализацию выборки инструкций) на AMD64, но не на Intel 64.
Старые реализации
[ редактировать ]Этот раздел необходимо обновить . Причина: будущее время, относящееся к процессорам, которые отсутствовали в течение многих лет, даты с указанием дня и месяца, но без года. ( январь 2023 г. ) |
- Процессоры AMD64 до версии F [57] (отличающийся переходом с памяти DDR на DDR2 и новыми разъемами AM2 , F и S1 ) 2006 года не хватало
CMPXCHG16B
инструкция, которая является расширениемCMPXCHG8B
Инструкция присутствует в большинстве процессоров после 80486 . Похоже на:CMPXCHG8B
,CMPXCHG16B
позволяет выполнять атомарные операции с окта-словами (128-битные значения). Это полезно для параллельных алгоритмов, которые используют сравнение и обмен данными, размер которых превышает размер указателя, что часто встречается в алгоритмах без блокировок и без ожидания . БезCMPXCHG16B
необходимо использовать обходные пути, такие как критическая секция или альтернативные подходы без блокировки. [58] Его отсутствие также не позволяет 64-разрядным версиям Windows до Windows 8.1 иметь адресное пространство пользовательского режима размером более 8 ТиБ . [59] Для 64-битной версии Windows 8.1 требуется инструкция. [60] - Ранним процессорам AMD64 и Intel 64 не хватало
LAHF
иSAHF
инструкции в 64-битном режиме. AMD представила эти инструкции (также в 64-битном режиме) со своими 90-нм процессорами (версия D), начиная с Athlon 64 в октябре 2004 года. [61] [62] Intel представила инструкции в октябре 2005 года с версией 0F47h и более поздними версиями NetBurst . [68] Эта функция требуется для 64-разрядной версии Windows 8.1. [60] - В ранних процессорах Intel с процессором Intel 64 также отсутствует бит NX архитектуры AMD64. Он был добавлен в степпинг E0 (0F41h) Pentium 4 в октябре 2004 года. [69] Эта функция требуется для всех версий Windows 8.
- Ранние реализации Intel 64 имели 36-битную (64 ГиБ) физическую адресацию памяти, тогда как исходные реализации AMD64 имели 40-битную (1 ТиБ ) физическую адресацию. Intel впервые использовала 40-битную физическую адресацию в Xeon MP ( Potomac ), выпущенном 29 марта 2005 года. [70] Это различие не является отличием видимых пользователю ISA. В 2007 году Opteron на базе AMD 10h первым предоставил 48-битное (256 ТиБ) физическое адресное пространство. [71] [72] Физическая адресация Intel 64 была расширена до 44 бит (16 ТиБ) в Nehalem-EX в 2010 году. [73] и до 46 бит (64 ТиБ) в Sandy Bridge E в 2011 году. [74] [75] С процессорами Xeon Scalable третьего поколения Ice Lake компания Intel увеличила виртуальную адресацию до 57 бит (128 ПиБ ) и физическую до 52 бит (4 ПиБ) в 2021 году, что потребовало 5-уровневой пейджинговой связи . [76] В следующем году AMD64 добавила то же самое в EPYC 4-го поколения (Генуя). [77] Несерверные процессоры дольше сохраняют меньшее адресное пространство.
Принятие
[ редактировать ]В суперкомпьютерах , отслеживаемых TOP500 , появление 64-битных расширений для архитектуры x86 позволило 64-битным процессорам x86 от AMD и Intel заменить большинство RISC-процессорных архитектур, ранее использовавшихся в таких системах (включая PA-RISC , SPARC , Alpha и другие). , а также 32-битный x86, хотя сама Intel изначально безуспешно пыталась заменить x86 новой несовместимой 64-битной архитектурой в процессоре Itanium .
По состоянию на 2023 год [update]Суперкомпьютер HPE EPYC на базе Frontier занимает первое место. Первый суперкомпьютер на базе ARM появился в списке в 2018 году. [79] и в последние годы сопроцессоры с непроцессорной архитектурой ( GPGPU ) также сыграли большую роль в производительности. Сопроцессоры Intel Xeon Phi «Knights Corner» , реализующие подмножество x86-64 с некоторыми векторными расширениями, [80] также используются вместе с процессорами x86-64 в суперкомпьютере Tianhe-2 . [81]
Совместимость и характеристики операционной системы
[ редактировать ]Следующие операционные системы и выпуски поддерживают архитектуру x86-64 в длинном режиме .
БСД
[ редактировать ]Стрекоза БСД
[ редактировать ]Предварительные работы по созданию инфраструктуры для порта x86-64 были начаты в феврале 2004 года. [82] Позже это развитие застопорилось. Разработка возобновилась в июле 2007 г. [83] и продолжалось во время Google Summer of Code 2008 и SoC 2009. [84] [85] Первым официальным выпуском с поддержкой x86-64 была версия 2.4. [86]
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 г.
ПРИНАДЛЕЖАЩИЙ
[ редактировать ]Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2022 г. ) |
можно Войти в длинный режим под DOS без расширителя DOS, [87] но пользователь должен вернуться в реальный режим, чтобы вызвать прерывания BIOS или DOS.
Также возможно войти в длинный режим с помощью расширителя DOS, аналогичного DOS/4GW , но более сложного, поскольку в x86-64 отсутствует виртуальный режим 8086 . Сама DOS об этом не знает, и не следует ожидать никаких преимуществ, если только DOS не будет работать в режиме эмуляции с соответствующим серверным драйвером виртуализации, например: интерфейсом запоминающего устройства.
Линукс
[ редактировать ]Linux был первым ядром операционной системы, работающим на архитектуре x86-64 в длинном режиме , начиная с версии 2.4 в 2001 году (до появления аппаратного обеспечения). [88] [89] Linux также обеспечивает обратную совместимость для запуска 32-битных исполняемых файлов. Это позволяет перекомпилировать программы в длинный режим, сохраняя при этом использование 32-битных программ. x86-64 Текущие дистрибутивы Linux поставляются с собственными ядрами и пользовательскими пространствами . Некоторые, такие как Arch Linux , [90] SUSE , Mandriva и Debian позволяют пользователям устанавливать набор 32-битных компонентов и библиотек при установке с 64-битного носителя, что позволяет большинству существующих 32-битных приложений работать вместе с 64-битной ОС.
x32 ABI (двоичный интерфейс приложения), представленный в Linux 3.4, позволяет программам, скомпилированным для x32 ABI, работать в 64-битном режиме x86-64, используя только 32-битные указатели и поля данных. [91] [92] [93] Хотя это ограничивает программу виртуальным адресным пространством в 4 ГиБ, это также уменьшает объем памяти, занимаемой программой, и в некоторых случаях может позволить ей работать быстрее. [91] [92] [93]
64-разрядная версия Linux обеспечивает до 128 ТиБ виртуального адресного пространства для отдельных процессов и может адресовать примерно 64 ТиБ физической памяти с учетом ограничений процессора и системы. [94] или до 128 ПиБ (виртуальных) и 4 ПиБ (физических) с включенным 5-уровневым пейджингом. [95]
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. [96] Ядро и все расширения ядра являются только 32-битными.
Mac OS X 10.5 поддерживает 64-битные приложения с графическим интерфейсом, использующие Cocoa , Quartz , OpenGL и X11 на 64-битных машинах на базе процессоров Intel, а также на 64-битных PowerPC . машинах [97] Все библиотеки и платформы без графического интерфейса также поддерживают 64-битные приложения на этих платформах. Ядро и все расширения ядра являются только 32-битными.
Mac OS X 10.6 — первая версия macOS , поддерживающая 64-битное ядро . Однако не все 64-разрядные компьютеры могут работать с 64-разрядным ядром, и не все 64-разрядные компьютеры, которые могут запускать 64-разрядное ядро, будут делать это по умолчанию. [98] 64-битное ядро, как и 32-битное, поддерживает 32-битные приложения; оба ядра также поддерживают 64-битные приложения. Для 32-разрядных приложений ограничение виртуального адресного пространства составляет 4 ГиБ в любом ядре. [99] [100] 64-битное ядро не поддерживает 32-битные расширения ядра , а 32-битное ядро не поддерживает 64-битные расширения ядра.
OS X 10.8 включает только 64-битное ядро, но продолжает поддерживать 32-битные приложения; однако он не поддерживает 32-битные расширения ядра.
macOS 10.15 включает только 64-битное ядро и больше не поддерживает 32-битные приложения. Это прекращение поддержки создало проблему для WineHQ (и коммерческой версии CrossOver ), поскольку он по-прежнему должен иметь возможность запускать 32-битные приложения Windows. Решение, получившее название Wine32on64 , заключалось в добавлении преобразователей , которые переводят ЦП в режим 32-битной совместимости и выводят его из номинально 64-битного приложения. [101] [102]
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 года. [103] Внутри это одна и та же сборка (5.2.3790.1830 SP1), [104] [105] поскольку они используют одну и ту же исходную базу и двоичные файлы операционной системы, поэтому даже обновления системы выпускаются в унифицированных пакетах, во многом аналогично выпускам 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 может использовать все это при условии соблюдения ограничений хранилища в системе и при условии, что она связана с опцией «с поддержкой больших адресов», которая присутствует по умолчанию. [106] Это в 4096 раз больше, чем виртуальное адресное пространство пользовательского режима размером 2 ГиБ по умолчанию, предлагаемое 32-разрядной версией Windows. [107] [108]
- 8 ТиБ виртуального адресного пространства режима ядра для операционной системы. [107] Как и в случае с адресным пространством пользовательского режима, это увеличение в 4096 раз по сравнению с 32-битными версиями Windows. Увеличенное пространство в первую очередь приносит пользу кешу файловой системы и «кучам» режима ядра (невыгружаемый пул и выгружаемый пул). Windows использует в общей сложности только 16 ТиБ из 256 ТиБ, реализованных процессорами, поскольку ранние процессоры AMD64 не имели
CMPXCHG16B
инструкция. [109]
В Windows 8.1 и Windows Server 2012 R2 виртуальное адресное пространство как пользовательского режима, так и режима ядра было расширено до 128 ТиБ. [23] Эти версии Windows не будут устанавливаться на процессоры, в которых отсутствует CMPXCHG16B
инструкция.
Следующие дополнительные характеристики применимы ко всем 64-разрядным версиям Windows:
- Возможность запуска существующих 32-битных приложений (
.exe
программы) и библиотеки динамической компоновки (.dll
s) использование WoW64 , если WoW64 поддерживается этой версией. Кроме того, 32-битная программа, если она была связана с опцией «с учетом больших адресов», [106] может использовать до 4 ГиБ виртуального адресного пространства в 64-битной Windows вместо 2 ГиБ по умолчанию (дополнительно 3 ГиБ с/3GiB
вариант загрузки и вариант ссылки «с поддержкой большого адреса»), предлагаемые 32-разрядной версией Windows. [110] В отличие от использования/3GiB
вариант загрузки на x86, это не уменьшает виртуальное адресное пространство режима ядра, доступное операционной системе. Таким образом, 32-разрядные приложения могут получить выгоду от работы в Windows x64, даже если они не перекомпилированы для x86-64. - Как 32-, так и 64-разрядные приложения, если они не связаны с «поддержкой больших адресов», ограничены 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) физической оперативной памяти (ОЗУ). [111]
- Модель данных LLP64 : в C/C++ типы «int» и «long» имеют ширину 32 бита, «long long» — 64 бита, а указатели и типы, производные от указателей, — 64 бита.
- Драйверы устройств режима ядра должны быть 64-битными версиями; невозможно запустить 32-битные исполняемые файлы режима ядра в 64-битной операционной системе. Драйверы устройств пользовательского режима могут быть 32-битными или 64-битными.
- 16-разрядные приложения Windows (Win16) и DOS не будут работать в версиях Windows x86-64 из-за удаления подсистемы виртуальной машины DOS (NTVDM), которая полагалась на возможность использования виртуального режима 8086. В виртуальный режим 8086 невозможно войти во время работы в длинном режиме.
- Полная реализация функции защиты страниц NX (без выполнения). Это также реализовано в последних 32-разрядных версиях Windows, когда они запускаются в режиме PAE.
- Вместо дескриптора сегмента FS в версиях семейства Windows NT x86 дескриптор сегмента GS используется для указания на две структуры, определенные операционной системой: блок информации о потоке (NT_TIB) в пользовательском режиме и область управления процессором (KPCR) в режиме ядра. Так, например, в пользовательском режиме
GS:0
— это адрес первого члена блока информации о потоке. Соблюдение этого соглашения облегчило порт x86-64, но потребовало от AMD сохранить функцию сегментов FS и GS в длинном режиме — даже несмотря на то, что сегментированная адресация сама по себе фактически не используется ни в одной современной операционной системе. [107] - В ранних отчетах утверждалось, что планировщик операционной системы не сохраняет и не восстанавливает состояние машины x87 FPU при переключении контекста потока. Наблюдаемое поведение показывает, что это не так: состояние x87 сохраняется и восстанавливается, за исключением потоков, работающих только в режиме ядра (ограничение существует и в 32-битной версии). В самой последней документации Microsoft говорится, что x87/ MMX / 3DNow! инструкции можно использовать в длинном режиме, но они устарели и могут вызвать проблемы совместимости в будущем. [110] (3DNow! больше не доступен на процессорах AMD, за исключением
PREFETCH
иPREFETCHW
инструкции, [112] которые также поддерживаются процессорами Intel, начиная с Broadwell .) - Некоторые компоненты, такие как Jet Database Engine и объекты доступа к данным, не будут перенесены на 64-разрядные архитектуры, такие как x86-64 и IA-64. [113] [114] [115]
- 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 микроархитектуре . [116] [117] Прошивка и игры написаны на коде x86-64; никакой устаревший код x86 не используется.
Текущее поколение PlayStation 5 и Xbox Series X и Series S соответственно также оснащено процессорами AMD x86-64 на основе микроархитектуры Zen 2 . [118] [119]
считается ПК, Несмотря на то, что Steam Deck он использует специальный ускоренный процессор AMD x86-64 (APU), основанный на микроархитектуре Zen 2. [120]
Соглашения об отраслевых наименованиях
[ редактировать ]Поскольку 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.
- amd64
- Большинство систем BSD, таких как FreeBSD , MidnightBSD , NetBSD и OpenBSD, относятся как к AMD64, так и к Intel 64 под названием архитектуры «amd64».
- Некоторые дистрибутивы Linux, такие как Debian , Ubuntu , Gentoo Linux, относятся как к AMD64, так и к Intel 64 под названием архитектуры «amd64».
- Версии Microsoft Windows x64 используют внутреннее обозначение AMD64 для обозначения различных компонентов, которые используют эту архитектуру или совместимы с ней. Например, переменной среды PROCESSOR_ARCHITECTURE присваивается значение «AMD64», а не «x86» в 32-разрядных версиях, а системный каталог на установочном компакт-диске Windows x64 Edition называется «AMD64», в отличие от «i386». " в 32-битных версиях. [121]
- Sun Solaris от Команда isalist идентифицирует системы на базе AMD64 и Intel 64 как «amd64».
- Java Development Kit (JDK): имя «amd64» используется в именах каталогов, содержащих файлы x86-64.
- x86_64
- Ядро Linux [122] а в коллекции компиляторов GNU 64-битная архитектура называется «x86_64».
- Некоторые дистрибутивы Linux, такие как Fedora , openSUSE , Arch Linux , Gentoo Linux , называют эту 64-битную архитектуру «x86_64».
- Apple macOS называет 64-битную архитектуру «x86-64» или «x86_64», как показано в команде терминала.
arch
[3] и в их документации для разработчиков. [2] [4] - В отличие от большинства других систем BSD, DragonFly BSD называет 64-битную архитектуру «x86_64».
- Haiku называет 64-битную архитектуру «x86_64».
Лицензирование
[ редактировать ]x86-64/AMD64 был разработан исключительно AMD. AMD владеет патентами на технологии, используемые в AMD64; [123] [124] [125] для реализации AMD64 эти патенты должны быть лицензированы AMD. Intel заключила соглашение о перекрестном лицензировании с AMD, по которому AMD лицензирует свои патенты на существующие технологии x86 и лицензирует у AMD свои патенты на технологии, используемые в x86-64. [126] В 2009 году AMD и Intel урегулировали несколько судебных исков и разногласий по поводу перекрестного лицензирования, продлив свои соглашения о перекрестном лицензировании. [127] [128] [129]
См. также
[ редактировать ]- Универсальная инкапсулированная программная архитектура AMD (AGESA)
- Уязвимость процессора при временном выполнении
Примечания
[ редактировать ]- ^ Для набора команд используются разные названия. До запуска использовались 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] используйте х64. Семейство BSD ОС и несколько дистрибутивов Linux. [7] [8] используйте AMD64, как и Microsoft Windows внутри. [9] [10]
- ^ На практике 64-битные операционные системы обычно не поддерживают 16-битные приложения, хотя современные версии Microsoft Windows содержат ограниченный обходной путь, который эффективно поддерживает 16-битные установщики InstallShield и Microsoft ACME, автоматически заменяя их 32-битным кодом. [12]
- ↑ The Register сообщил, что образцы степпинга G1 (0F49h) Pentium 4 будут выпущены 17 октября, а массовые поставки — 14 ноября. [66] Однако в документе Intel говорится, что образцы будут доступны 9 сентября, тогда как 17 октября является «датой первой доступности материалов после преобразования», которую Intel определяет как «проектируемую дату, когда клиент может ожидать получения материалов после преобразования». .... клиенты должны быть готовы получить уже преобразованные материалы в этот день». [67]
Ссылки
[ редактировать ]- ^ «Часто задаваемые вопросы по Debian AMD64» . Дебиан Вики . Архивировано из оригинала 26 сентября 2019 года . Проверено 3 мая 2012 г.
- ^ Jump up to: а б с «Модель кода x86-64» . Яблоко. Архивировано из оригинала 2 июня 2012 года . Проверено 23 ноября 2012 г.
- ^ Jump up to: а б с Darwin и macOS по общим командам Руководство –
- ^ Jump up to: а б с Кевин Ван Вехтен (9 августа 2006 г.). «re: Отчет об ошибке Intel XNU» . Список рассылки Darwin-dev . Компьютер Apple . Архивировано из оригинала 1 февраля 2020 года . Проверено 5 октября 2006 г.
Ядро и инструменты разработчика стандартизировали «x86_64» для названия архитектуры Mach-O.
- ^ Jump up to: а б «Солярис 10 на AMD Opteron» . Оракул. Архивировано из оригинала 25 июля 2017 года . Проверено 9 декабря 2010 г.
- ^ Jump up to: а б «64-битные вычисления Microsoft» . Майкрософт. Архивировано из оригинала 12 декабря 2010 года . Проверено 9 декабря 2010 г.
- ^ «Порт AMD64» . Дебиан. Архивировано из оригинала 26 сентября 2019 года . Проверено 23 ноября 2012 г.
- ^ «Проект Gentoo/AMD64» . Проект Генту. Архивировано из оригинала 3 июня 2013 года . Проверено 27 мая 2013 г.
- ^ «Детали реализации WOW64» . Архивировано из оригинала 13 апреля 2018 года . Проверено 24 января 2016 г.
- ^ «Класс ProcessorArchitecture» . Архивировано из оригинала 3 июня 2017 года . Проверено 24 января 2016 г.
- ^ Jump up to: а б с д и ж г час я дж к л м н тот п д р с т в Корпорация AMD (декабрь 2016 г.). «Том 2: Системное программирование» (PDF) . Руководство программиста по архитектуре AMD64 . Корпорация АМД. Архивировано (PDF) из оригинала 13 июля 2018 г. Проверено 25 марта 2017 г.
- ^ Раймонд Чен (31 октября 2013 г.). «Если в 64-битной Windows нет 16-битного уровня эмуляции, почему разрешен запуск некоторых 16-битных установщиков?» . Архивировано из оригинала 14 июля 2021 года . Проверено 14 июля 2021 г.
- ^ «Раскрытие тайны о 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-битных платформах.
- ^ «AMD раскрывает новые технологии на форуме Microporcessor» (пресс-релиз). АМД. 5 октября 1999 года. Архивировано из оригинала 8 марта 2012 года . Проверено 9 ноября 2010 г.
- ^ «AMD выпускает архитектурную спецификацию x86-64; обеспечивает рыночный переход на 64-битные вычисления» (пресс-релиз). АМД. 10 августа 2000 года. Архивировано из оригинала 8 марта 2012 года . Проверено 9 ноября 2010 г.
- ^ Руководство программиста по архитектуре AMD64 (PDF) . п. 1.
- ^ Мауэрер, В. (2010). Профессиональная архитектура ядра Linux. Джон Уайли и сыновья.
- ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 3A: Руководство по системному программированию, часть 1» (PDF) . стр. 4–7. Архивировано (PDF) из оригинала 16 мая 2011 г. Проверено 10 июля 2019 г.
- ^ Jump up to: а б «Руководство разработчика BIOS и ядра (BKDG) для процессоров семейства AMD 10h» (PDF) . п. 24. Архивировано (PDF) из оригинала 18 апреля 2016 г. Проверено 27 февраля 2016 г.
Физическое адресное пространство увеличено до 48 бит.
- ^ «Миф и факты о 64-битном Linux» (PDF) . 2 марта 2008 г. с. 7. Архивировано из оригинала (PDF) 10 октября 2010 года . Проверено 30 мая 2010 г.
Физическое адресное пространство увеличено до 48 бит.
- ^ Шенли, Том (1998). Системная архитектура Pentium Pro и Pentium II . Серия системной архитектуры ПК (второе изд.). Аддисон-Уэсли. п. 445 . ISBN 0-201-30973-4 .
- ^ Корпорация Майкрософт. «Что такое PAE, NX и SSE2 и почему мой компьютер должен их поддерживать для запуска Windows 8?» . Архивировано из оригинала 11 апреля 2013 года . Проверено 19 марта 2013 г.
- ^ Jump up to: а б с д «Ограничения памяти для выпусков Windows» . MSDN . Майкрософт . 16 ноября 2013. Архивировано из оригинала 6 января 2014 года . Проверено 20 января 2014 г.
- ^ «5-уровневый пейджинг и 5-уровневый EPT» (PDF) . Интел. Май 2017 г. Архивировано (PDF) из оригинала 5 декабря 2018 г. . Проверено 17 июня 2017 г.
- ^ Патент США 9858198 , Ларри Зейлер, «Система страниц 64 КБ, поддерживающая операции со страницами 4 КБ», опубликован 29 декабря 2016 г., выдан 02 января 2018 г., передан корпорации Intel.
- ^ «Материнские платы серии Opteron 6100» . Корпорация Супермикро. Архивировано из оригинала 3 июня 2010 года . Проверено 22 июня 2010 г.
- ^ «Супермикро XeonSolutions» . Корпорация Супермикро. Архивировано из оригинала 27 мая 2010 года . Проверено 20 июня 2010 г.
- ^ «Материнские платы серии Opteron 8000» . Корпорация Супермикро. Архивировано из оригинала 27 мая 2010 года . Проверено 20 июня 2010 г.
- ^ «Матрица продуктов Тян» . Международная корпорация МиТЕК. Архивировано из оригинала 6 июня 2010 года . Проверено 21 июня 2010 г.
- ^ Jump up to: а б «Из архива AMI: AMIBIOS 8 и переход на EFI» . Американские мегатренды . 8 сентября 2017 года. Архивировано из оригинала 25 октября 2021 года . Проверено 25 октября 2021 г.
- ^ «Intel продолжает проект Ямхилл?» . Неовин . Архивировано из оригинала 5 июня 2022 года . Проверено 5 июня 2022 г.
- ^ «Крейг Барретт подтверждает 64-битные расширения адресов для Xeon. И Прескотт» . Спрашивающий. 17 февраля 2004 года. Архивировано из оригинала 12 января 2013 года . Проверено 20 августа 2017 г.
- ^ « Обзор 64-битных вычислений», с сайта Internetnews.com» . Архивировано из оригинала 25 сентября 2012 года . Проверено 18 сентября 2006 г.
- ^ Лапедус, Марк (6 февраля 2004 г.). «Intel продемонстрирует линейку 64-битных процессоров CT на IDF» . ЭДН . АспенКор Медиа. Архивировано из оригинала 25 мая 2021 года . Проверено 25 мая 2021 г.
- ^ «Архитектура Intel 64» . Интел . Архивировано из оригинала 29 июня 2011 года . Проверено 29 июня 2007 г.
- ^ «Intel публикует спецификацию X86-S только для 64-битной архитектуры» . www.phoronix.com .
- ^ Jump up to: а б «Представление упрощенной архитектуры Intel будущего» . Интел .
- ^ «VIA выпустит новую процессорную архитектуру в 1К08» (требуется подписка) . ДиджиТаймс . 25 июля 2007. Архивировано из оригинала 3 декабря 2008 года . Проверено 25 июля 2007 г.
- ^ Стоукс, Джон (23 января 2008 г.). «Исайя раскрыл: новую архитектуру VIA с низким энергопотреблением» . Арс Техника. Архивировано из оригинала 27 января 2008 года . Проверено 24 января 2008 г.
- ^ «VIA представляет семейство процессоров VIA Nano» (пресс-релиз). С ПОМОЩЬЮ . 29 мая 2008 года. Архивировано из оригинала 3 февраля 2019 года . Проверено 25 мая 2017 г.
- ^ «Введение в архитектуру VIA Isaiah» (PDF) . С ПОМОЩЬЮ . 23 января 2008 г. Архивировано из оригинала (PDF) 7 сентября 2008 г. . Проверено 31 июля 2013 г.
- ^ Веймер, Флориан (10 июля 2020 г.). «Новые уровни микроархитектуры x86-64» . llvm-dev (список рассылки). Архивировано из оригинала 14 апреля 2021 года . Проверено 11 марта 2021 г.
- ^ Веймер, Флориан (5 января 2021 г.). «Сборка Red Hat Enterprise Linux 9 для уровня микроархитектуры x86-64-v2» . Блог разработчиков Red Hat . Архивировано из оригинала 20 февраля 2022 года . Проверено 22 марта 2022 г.
- ^ «Низкоуровневая системная информация двоичного интерфейса приложения System V» . Репозиторий x86-64 psABI . 29 января 2021 года. Архивировано из оригинала 2 февраля 2021 года . Получено 11 марта 2021 г. — через GitLab .
- ^ «Выпущена версия QEMU 7.2.0 — QEMU» . www.qemu.org . Архивировано из оригинала 21 декабря 2022 года . Проверено 9 января 2023 г.
- ^ «Журнал изменений/7.2 — QEMU» . wiki.qemu.org . Архивировано из оригинала 9 января 2023 года . Проверено 9 января 2023 г.
- ^ Уоссон, Скотт (23 марта 2005 г.). «64-битные вычисления в теории и практике» . Технический отчет . Архивировано из оригинала 12 марта 2011 года . Проверено 22 марта 2011 г.
- ^ «Обсуждение переполнения стека» . Март 2021. Архивировано из оригинала 11 января 2023 года . Проверено 2 марта 2021 г.
- ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2 (2A, 2B и 2C): Справочник по набору команд, A–Z» (PDF) . Интел. Сентябрь 2013. стр. 4–397. Архивировано (PDF) из оригинала 20 октября 2013 г. Проверено 21 января 2014 г.
- ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2 (2A, 2B и 2C): Справочник по набору команд, Аризона» (PDF) . Интел. Сентябрь 2013. стр. 4–400. Архивировано (PDF) из оригинала 20 октября 2013 г. Проверено 21 января 2014 г.
- ^ «Как отказ от сегментации в длинном режиме AMD64 сломал VMware» . Pagetable.com. 9 ноября 2006 года. Архивировано из оригинала 18 июля 2011 года . Проверено 2 мая 2010 г.
- ^ «Технология виртуализации VMware и ЦП» (PDF) . VMware. Архивировано (PDF) из оригинала 17 июля 2011 г. Проверено 8 сентября 2010 г.
- ^ «Архив Linux-Kernel: [ИСПРАВЛЕНИЕ 2/5] KVM: svm: запретить EFER.LMSLE на оборудовании, которое его не поддерживает» . lkml.indiana.edu . Проверено 3 ноября 2023 г.
- ^ «Руководство программиста по архитектуре AMD64, том 3: универсальные и системные инструкции» (PDF) . АМД. Май 2018. с. 419. Архивировано (PDF) из оригинала 20 августа 2018 г. . Проверено 2 августа 2018 г.
- ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2 (2A, 2B и 2C): Справочник по набору команд, Аризона» (PDF) . Интел. Сентябрь 2014 г., стр. 4–412. Архивировано (PDF) из оригинала 13 января 2015 г. Проверено 28 декабря 2014 г.
- ↑ Хади Брайс, Значение инструкции LFENCE для x86 , 14 мая 2018 г. Архивировано 10 июня 2023 г.
- ^ «Живая миграция с помощью технологии расширенной миграции AMD-V™» (PDF) . http://developer.amd.com . Архивировано (PDF) из оригинала 6 декабря 2022 г. Проверено 30 июня 2022 г.
- ^ Магед М. Майкл. «Практические реализации LL/SC/VL без блокировок и без ожидания с использованием 64-битного CAS» (PDF) . ИБМ. Архивировано (PDF) из оригинала 2 мая 2013 г. Проверено 21 января 2014 г.
- ^ Дарву (20 августа 2004 г.). «Почему виртуальное адресное пространство составляет 4 ГБ?» . Старая новая вещь . Майкрософт. Архивировано из оригинала 26 марта 2017 года . Проверено 25 марта 2017 г.
- ^ Jump up to: а б «Системные требования — Windows 8.1» . Архивировано из оригинала 28 апреля 2014 года . Проверено 27 апреля 2014 г.
Чтобы установить 64-битную ОС на 64-битный ПК, ваш процессор должен поддерживать CMPXCHG16b, PrefetchW и LAHF/SAHF.
- ^ Петков, Борислав (10 августа 2009 г.). «Re: [PATCH v2] x86: сбросить неправильно установленный флаг X86_FEATURE_LAHF_LM» . Список рассылки ядра Linux . Архивировано из оригинала 11 января 2023 года . Проверено 30 июня 2022 г.
- ^ «Руководство по пересмотру процессоров AMD Athlon 64 и AMD Opteron» (PDF) . АМД. Архивировано (PDF) из оригинала 24 августа 2009 г. Проверено 18 июля 2009 г.
- ^ «Уведомление об изменении продукта 105224-01» (PDF) . Интел. Архивировано из оригинала (PDF) 17 ноября 2005 г.
- ^ «Процессор Intel® Pentium® D серии 800 и обновление спецификации процессора Intel® Pentium® Extreme Edition 840» (PDF) . Архивировано (PDF) из оригинала 18 мая 2021 г. Проверено 30 июня 2022 г.
- ^ «Intel Xeon 2,8 ГГц — NE80551KG0724MM/BX80551KG2800HA» . CPU-Мир . Архивировано из оригинала 28 июня 2020 года . Проверено 30 июня 2022 г.
- ^ Смит, Тони (23 августа 2005 г.). «Intel настраивает EM64T для полной совместимости с AMD64» . Регистр . Архивировано из оригинала 30 июня 2022 года . Проверено 30 июня 2022 г.
- ^ «Уведомление об изменении продукта 105271 – 00» (PDF) . Интел. Архивировано из оригинала (PDF) 17 ноября 2005 г.
- ^ 0F47h дебютировал в степпинге B0 Pentium D 21 октября. [63] [64] но 0F48h, который также поддерживает LAHF/SAHF, был выпущен 10 октября в двухъядерном процессоре Xeon . [65] [а]
- ^ «Уведомление об изменении продукта 104101 – 00» (PDF) . Интел. Архивировано из оригинала (PDF) 16 июля 2004 г.
- ^ «Технические данные 64-разрядного процессора Intel® Xeon™ MP с кэшем L3 объемом до 8 МБ» (PDF) . Архивировано (PDF) из оригинала 17 ноября 2022 г. Проверено 17 ноября 2022 г.
- ^ «Джастин Боггс на Microsoft PDC 2008» . п. 5. Архивировано из оригинала 17 ноября 2022 года . Проверено 17 ноября 2022 г.
- ^ Уолдекер, Брайан. «Многоядерные процессоры AMD Opteron» (PDF) . п. 13. Архивировано (PDF) из оригинала 13 декабря 2022 г. Проверено 17 ноября 2022 г.
- ^ «Техническое описание процессора Intel® Xeon® серии 7500, том 2» (PDF) . Архивировано (PDF) из оригинала 17 ноября 2022 г. Проверено 17 ноября 2022 г.
- ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32» . Сентябрь 2014. с. 2-21. Архивировано из оригинала 14 мая 2019 г.
Архитектура Intel 64 увеличивает линейное адресное пространство для программного обеспечения до 64 бит и поддерживает физическое адресное пространство до 46 бит.
- ^ Логан, Том (14 ноября 2011 г.). «Обзор Intel Core i7-3960X» . Архивировано из оригинала 28 марта 2016 года . Проверено 1 июля 2022 г.
- ^ Да, Хуайшэн. «Введение в 5-уровневую подкачку страниц в масштабируемых процессорах Intel Xeon 3-го поколения с Linux» (PDF) . Леново. Архивировано (PDF) из оригинала 26 мая 2022 г. Проверено 1 июля 2022 г.
- ^ Кеннеди, Патрик (10 ноября 2022 г.). «AMD EPYC Genoa превосходит Intel Xeon в потрясающем стиле» . Сервис TheHome . п. 2. Архивировано из оригинала 17 ноября 2022 года . Проверено 17 ноября 2022 г.
- ^ «Статистика | ТОП500 суперкомпьютерных сайтов» . Топ500.org. Архивировано из оригинала 19 марта 2014 года . Проверено 22 марта 2014 г.
- ^ «Генератор подсписков | ТОП500 суперкомпьютерных сайтов» . www.top500.org . Архивировано из оригинала 7 декабря 2018 года . Проверено 6 декабря 2018 г.
- ^ «Справочное руководство по архитектуре набора команд сопроцессора Intel® Xeon PhiTM» (PDF) . Интел. 7 сентября 2012 г. раздел B.2 Ограничения 64-разрядного режима сопроцессора Intel Xeon Phi. Архивировано (PDF) из оригинала 21 мая 2014 г. Проверено 21 мая 2014 г.
- ^ «Intel обеспечивает работу самого быстрого в мире суперкомпьютера и раскрывает новые и будущие высокопроизводительные вычислительные технологии» . Архивировано из оригинала 22 июня 2013 года . Проверено 21 июня 2013 г.
- ^ "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 г.
- ^ «Порт AMD64» . Архивировано из оригинала 18 мая 2010 года . Проверено 3 мая 2009 г.
- ^ «DragonFlyBSD: GoogleSoC2008» . Архивировано из оригинала 27 апреля 2009 года . Проверено 3 мая 2009 г.
- ^ «Летом Кодекса принимаются студенты» . Архивировано из оригинала 4 сентября 2010 года . Проверено 3 мая 2009 г.
- ^ «DragonFlyBSD: выпуск 24» . Архивировано из оригинала 23 сентября 2009 года . Проверено 3 мая 2009 г.
- ^ «Урок по входу в защищенный и длинный режим из DOS» . Архивировано из оригинала 22 февраля 2017 года . Проверено 6 июля 2008 г.
- ^ Энди Клин (26 июня 2001 г.). «Портирование Linux на x86-64» . Архивировано из оригинала 10 сентября 2010 года.
Статус: Ядро, компилятор, инструментарий работают. Ядро загружается и работает на симуляторе и используется для переноса пользовательского пространства и запуска программ.
- ^ Энди Клин. «Страница Энди Клина» . Архивировано из оригинала 7 декабря 2009 года . Проверено 21 августа 2009 г.
Это был оригинальный документ, описывающий порт ядра Linux x86-64, когда x86-64 был доступен только на симуляторах.
- ^ «Часто задаваемые вопросы по Arch64» . 23 апреля 2012. Архивировано из оригинала 14 мая 2012 года . Проверено 11 мая 2012 г.
Вы можете использовать пакеты multilib или chroot i686.
- ^ Jump up to: а б Торстен Лемхейс (13 сентября 2011 г.). «Журнал ядра: x32 ABI устраняет недостатки 64-битной системы» . www.h-online.com. Архивировано из оригинала 28 октября 2011 года . Проверено 1 ноября 2011 г.
- ^ Jump up to: а б «x32 — собственный 32-битный ABI для x86-64» . linuxplumbersconf.org. Архивировано из оригинала 5 мая 2012 года . Проверено 1 ноября 2011 г.
- ^ Jump up to: а б "x32-аби" . Сайты Google. Архивировано из оригинала 30 октября 2011 года . Проверено 1 ноября 2011 г.
- ^ «Порт AMD64» . debian.org. Архивировано из оригинала 26 сентября 2019 года . Проверено 29 октября 2011 г.
- ^ «5-уровневый пейджинг» . ядро.орг . Проверено 7 февраля 2024 г.
- ^ «Apple – Mac OS X Xcode 2.4. Примечания к выпуску: инструменты компилятора» . Apple Inc. , 11 апреля 2007 г. Архивировано из оригинала 22 апреля 2009 г. . Проверено 19 ноября 2012 г.
- ^ «Apple – Mac OS X Leopard – Технология – 64-разрядная версия» . Apple Inc. Архивировано из оригинала 12 января 2009 года . Проверено 19 ноября 2012 г.
- ^ «Mac OS X v10.6: компьютеры Mac, использующие 64-битное ядро» . Apple Inc. Архивировано из оригинала 31 августа 2009 года . Проверено 29 ноября 2012 г.
- ^ Джон Сиракузы. «Mac OS X 10.6 Snow Leopard: обзор Ars Technica» . ООО «Арс Техника». Архивировано из оригинала 9 октября 2009 года . Проверено 20 июня 2010 г.
- ^ «Технология Mac OS X» . Apple Inc. Архивировано из оригинала 28 марта 2011 года . Проверено 19 ноября 2012 г.
- ^ Шмид, Дж; Томасес, К; Рэми, Дж; Чекалла, У; Матье, Б; Абхирам, Р. (10 сентября 2019 г.). «Итак, у нас нет решения для Каталины… пока» . Блог CodeWeavers . Архивировано из оригинала 29 сентября 2021 года . Проверено 29 сентября 2021 г.
- ^ Томасес, Кен (11 декабря 2019 г.). «win32 на macOS» . Винный штаб-квартира . Архивировано из оригинала 11 ноября 2020 года . Проверено 29 сентября 2021 г.
- ^ «Microsoft повышает ограничение скорости с появлением 64-разрядных выпусков Windows Server 2003 и Windows XP Professional» . Центр новостей Microsoft (пресс-релиз). 25 апреля 2005 года . Проверено 29 января 2024 г.
- ^ «Описание 64-разрядных версий Windows Server 2003 и Windows XP Professional x64 Edition» . Поддержка Майкрософт . Архивировано из оригинала 20 апреля 2016 года . Проверено 14 августа 2016 г.
- ^ «Пакет средств администрирования Windows Server 2003 SP1» . Центр загрузки Microsoft . Архивировано из оригинала 27 августа 2016 года . Проверено 14 августа 2016 г.
- ^ Jump up to: а б «/LARGEADDRESSAWARE (обработка больших адресов)» . Документация по Visual Studio 2022 — Справочник по компоновщику MSVC — Параметры компоновщика MSVC . Майкрософт. Архивировано из оригинала 21 декабря 2022 года . Проверено 21 декабря 2022 г.
Параметр /LARGEADDRESSAWARE сообщает компоновщику, что приложение может обрабатывать адреса размером более 2 гигабайт.
- ^ Jump up to: а б с Мэтт Питрек (май 2006 г.). «Все, что вам нужно знать, чтобы начать программировать 64-битные системы Windows» . Майкрософт . Проверено 18 апреля 2023 г.
- ^ Крис Сент-Аманд (январь 2006 г.). «Переход на x64» . Майкрософт . Проверено 18 апреля 2023 г.
- ^ «За пределом адресации 44-битной виртуальной памяти Windows x86-64» . Архивировано из оригинала 23 декабря 2008 года . Проверено 2 июля 2009 г.
- ^ Jump up to: а б «64-битное программирование для разработчиков игр» . Проверено 18 апреля 2023 г.
- ^ «Ограничения памяти для выпусков Windows и Windows Server» . Майкрософт . Проверено 18 апреля 2023 г.
- ^ Кингсли-Хьюз, Адриан (23 августа 2010 г.). «AMD прощается с набором инструкций 3DNow!» . ЗДНет . Архивировано из оригинала 8 января 2023 года . Проверено 8 января 2023 г.
- ^ «Общие рекомендации по портированию» . Руководство по программированию для 64-битной Windows. Документы Майкрософт . Проверено 18 апреля 2023 г.
- ^ «История драйверов для Microsoft SQL Server» . Документы Майкрософт . Проверено 18 апреля 2023 г.
- ^ «Поставщик Microsoft OLE DB для Jet и драйвер ODBC Jet доступны только в 32-разрядных версиях» . Доступ в офис. Документы Майкрософт . КБ957570 . Проверено 18 апреля 2023 г.
- ^ Ананд Лал Шимпи (21 мая 2013 г.). «Xbox One: анализ оборудования и сравнение с PlayStation 4» . Анандтех. Архивировано из оригинала 7 июня 2013 года . Проверено 22 мая 2013 г.
- ^ «Тест технических характеристик: Xbox One против PlayStation 4» . Игровой информер. 21 мая 2013. Архивировано из оригинала 7 июня 2013 года . Проверено 22 мая 2013 г.
- ^ «Чего ожидать от запуска Sony PlayStation 5 в ноябре» . Индийский экспресс . 31 августа 2020 года. Архивировано из оригинала 19 сентября 2020 года . Проверено 14 сентября 2020 г.
- ^ Катресс, доктор Ян. «Живой блог Hot Chips 2020: системная архитектура Microsoft Xbox Series X (18:00 по тихоокеанскому времени)» . www.anandtech.com . Архивировано из оригинала 17 сентября 2020 года . Проверено 14 сентября 2020 г.
- ^ Холлистер, Шон (12 ноября 2021 г.). «Steam Deck: пять важных вещей, которые мы узнали на саммите разработчиков Valve» . Грань . Архивировано из оригинала 7 февраля 2022 года . Проверено 12 ноября 2021 г.
- ^ «Поля архитектуры процессора» . Архивировано из оригинала 28 апреля 2015 года . Проверено 4 сентября 2013 г.
- ^ «Пример файла из дерева исходного кода ядра Linux 3.7.8, показывающий использование термина x86_64» . Архивировано из оригинала 23 сентября 2005 года . Проверено 17 февраля 2013 г.
- ^ США 6877084
- ^ США 6889312
- ^ США 6732258
- ^ «Соглашение о перекрестной патентной лицензии между AMD и Intel» . 1 января 2001 года. Архивировано из оригинала 21 июня 2007 года . Проверено 23 августа 2009 г.
- ^ «Мировое соглашение с AMD Intel» . Архивировано из оригинала 7 июля 2017 года . Проверено 18 сентября 2017 г.
- ^ Стивен Шенкленд и Джонатан Э. Скиллингс (12 ноября 2009 г.). «Intel выплатит 1,25 миллиарда драмов в рамках антимонопольного урегулирования» . CNET. Архивировано из оригинала 8 ноября 2012 года . Проверено 24 апреля 2012 г.
- ^ Смит, Райан (12 ноября 2009 г.). «AMD и Intel урегулируют свои разногласия: AMD останется без фабрик» . АнандТех . Архивировано из оригинала 13 мая 2010 года.
Внешние ссылки
[ редактировать ]- Руководства, руководства и документы ISA для разработчиков AMD
- x86-64: Расширение архитектуры x86 до 64-бит — технический доклад архитектора AMD64 ( видеоархив ), и второй доклад того же докладчика ( видеоархив )
- «Улучшенная защита от вирусов» AMD
- Intel настраивает EM64T для полной совместимости с AMD64
- Аналитик: Intel AMD64, реверс-инжиниринг
- Ранний отчет о различиях между Intel IA32e и AMD64
- Портирование на 64-битные системы GNU/Linux , автор Андреас Йегер с GCC Summit 2003. Отличная статья, объясняющая почти все практические аспекты перехода с 32-битной на 64-битную систему.
- Архитектура Intel 64
- Сеть программного обеспечения Intel: «64 бита»
- Учебные пособия TurboIRC.COM, включая примеры того, как войти в защищенный и длинный режимы необработанным способом из DOS.
- Семь шагов миграции программы на 64-битную систему
- Ограничения памяти для выпусков Windows