Jump to content

x86-64

(Перенаправлено из x86s )

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. Через технологии ввели x86-64 в их архитектуре Via Isaiah, с Via Nano .

Архитектура X86-64 была быстро принята для персональных компьютеров и серверов настольных и ноутбуков, которые обычно были настроены для 16 GIB ( Gibibytes ) памяти или более. Он эффективно заменил прекращенную архитектуру Intel Itanium (ранее IA-64 ), которая первоначально была предназначена для замены архитектуры x86. x86-64 и итания не совместимы на собственном уровне набора инструкций, а операционные системы и приложения, скомпилированные для одной архитектуры, не могут быть запускаются на другой.

Логотип 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 на Legacy , в отличие от подхода 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), Турик или «X4». 64 , Турион 64 x2 , Sempron («Палермо» E6 Stepping и все модели «Манила»), феном (следовало «x3» или «x4», чтобы указать количество ядер), феном II (с последующим «x2», »,« X4 »,« x3 »,", "x4"), феном II (следовал «x2», "," x4 "), феном II (затем« x2 »,", "x4"), феном II (затем «x2», "или" x4 "), феном II. X3 "," x4 "или" x6 ", чтобы указать количество ядер), Fx , Fusion / APU и Ryzen / Epyc .

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

[ редактировать ]

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

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

64-битная целочисленная возможность
Все регистры общего назначения (GPR) расширяются с 32 бит до 64 бит, а все арифметические и логические операции, операции с заменой памяти и регистрации в память и т. Д. могут работать непосредственно на 64-разрядных целых числах. Толкает и появляется на стеке по умолчанию до 8-байтовых шагов, а указатели имеют ширину 8 байтов.
Дополнительные регистры
В дополнение к увеличению размера регистров общего назначения, число названных регистров общего назначения увеличивается с восьми (т.е. eax , ecx , edx , Ebx , особенно EBP , его , edi ) в x86 до 16 (т.е. Рак , RCX ; rdx , RBX , RSP , RBP , RSI , RDI , R8 , R9 , R10 , R11 , R12 , R13 , R14 , R15 ). Поэтому возможно сохранить больше локальных переменных в регистрах, а не в стеке, и позволить регистрам удерживать часто доступ к константам; Аргументы для небольших и быстрых подпрограмм также могут быть переданы в регистрах в большей степени.
AMD64 по-прежнему имеет меньше регистров, чем у многих RISC наборов инструкций (например, Power ISA имеет 32 GPR; 64-битный ARM , RISC-V 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.
Традиционный стек регистра FPU FPU X87 не включен в расширение размера регистра в 64-битном режиме, по сравнению с регистрами XMM, используемыми SSE2, которые были расширены. Степник регистра x87 не является простым файлом регистрации, хотя он позволяет прямой доступ к отдельным регистрам с помощью недорогих обменных операций.
Большое виртуальное адресное пространство
Архитектура AMD64 определяет 64-битный формат виртуального адреса, из которого 48 бит низкого порядка используются в текущих реализациях. [ 11 ] : 120  Это допускает до 256 TIB (2 48 байты ) виртуального адресного пространства. Определение архитектуры позволяет увеличить этот предел в будущих реализациях до полных 64 бит, [ 11 ] : 2  : 3  : 13  : 117  : 120  Расширение виртуального адресного пространства на 16 EIB (2 64 байты). [ 17 ] Это сравнивается с 4 GIB (2 32 байты) для x86. [ 18 ]
Это означает, что очень большие файлы могут выполняться путем сопоставления всего файла в адресное пространство процесса (которое часто намного быстрее, чем работа с вызовами чтения/записи файла), а не на карту областей файла в и вне адресное пространство.
Большое физическое адресное пространство
Первоначальная реализация архитектуры AMD64, внедренных 40-битными физическими адресами , и поэтому может решить до 1 TIB (2 40 байты) ОЗУ. [ 11 ] : 24  Текущие реализации архитектуры AMD64 (начиная с микроархитектуры AMD 10H ) расширяют это до 48-битных физических адресов [ 19 ] и поэтому может решить до 256 TIB (2 48 байты) ОЗУ. Архитектура позволяет расширить это до 52 бит в будущем [ 11 ] : 24  [ 20 ] (ограничен форматом записи таблицы страниц); [ 11 ] : 131  Это позволило бы адресовать до 4 пиб барана. Для сравнения, 32-разрядные процессоры x86 ограничены 64 GIB of RAM в режиме расширения физического адреса (PAE), [ 21 ] или 4 Gib of Ram без режима PAE. [ 11 ] : 4 
Большое физическое адресное пространство в режиме устаревшего
При работе в режиме устаревшего архитектура AMD64 поддерживает режим расширения физического адреса (PAE), как и большинство текущих процессоров x86, но AMD64 расширяет PAE от 36 бит до архитектурного предела в 52 бита физического адреса. Следовательно, любая реализация обеспечивает тот же ограничение физического адреса, что и в длинном режиме . [ 11 ] : 24 
Указатель инструкции относительный доступ к данным
Инструкции теперь могут ссылаться на данные относительно указателя инструкций (реестр RIP). Это делает независимый от позиции код , как это часто используется в общих библиотеках , а код, загруженный во время выполнения, более эффективным.
SSE инструкции
Intel Оригинальная архитектура AMD64 приняла SSE и SSE2 в качестве основных инструкций. Эти наборы инструкций предоставляют векторное дополнение к скалярному X87 FPU для типов данных с одним режиссером и двойной задачей. SSE2 также предлагает целочисленные векторные операции, для типов данных в диапазоне от 8 бит до 64 -битной точности. Это делает векторные возможности архитектуры наравне с возможностями самых продвинутых процессоров X86 своего времени. Эти инструкции также могут использоваться в 32-битном режиме. Распространение 64-битных процессоров сделало эти векторные возможности повсеместными на домашних компьютерах, что позволило улучшить стандарты 32-битных применений. Например, 32-разрядное издание Windows 8 требует наличия инструкций SSE2. [ 22 ] SSE3 Инструкции и более поздние потоковые наборы инструкций SIMD Extensions не являются стандартными функциями архитектуры.
Без проверки
Бит без Execute или NX-бит (бит 63 записи таблицы страниц) позволяет операционной системе указать, какие страницы виртуального адресного пространства могут содержать исполняемый код, а какие не могут. Попытка выполнить код со страницы, помеченной «Нет выполнения», приведет к нарушению доступа к памяти, аналогично попытке записать на страницу только для чтения. Это должно затруднить вредный код, чтобы взять контроль над системой с помощью « переполнения буфера » или «неконтролируемого буфера». Аналогичная функция была доступна на процессорах x86 со времен 80286 в качестве атрибута дескрипторов сегмента ; Тем не менее, это работает только на целом сегменте за раз.
Сегментированная адресация уже давно считается устаревшим способом работы, и все текущие операционные системы ПК, действующие, обходят ее, устанавливая все сегменты на базовый адрес нулевого и (в их 32-разрядной реализации) размером 4 GIB. AMD был первым поставщиком семейства X86, который реализовал без Execute в режиме линейной адресации. Эта функция также доступна в устаревшем режиме на процессорах AMD64 и недавних процессорах Intel X86, когда используется PAE.
Удаление старых функций
Несколько функций «системного программирования» архитектуры x86 были либо неиспользованы, либо недостаточно использования в современных операционных системах и либо недоступны в режиме AMD64 в длинной (64-битной и совместимости), либо существуют только в ограниченной форме. К ним относятся сегментированная адресация (хотя сегменты FS и GS сохраняются в рудиментарной форме для использования в качестве дополнительных указателей на структуры операционной системы), [ 11 ] : 70  механизм переключения состояния задачи и виртуальный режим 8086 . Эти функции остаются полностью реализованными в «Устаревшем режиме», что позволяет этим процессорам запускать 32-битные и 16-битные операционные системы без модификаций. Некоторые инструкции, которые оказались редко полезными, не поддерживаются в 64-битном режиме, включая сохранение/восстановление регистров сегмента в стеке, сохранение/восстановление всех регистров (pusha/popa), десятичная арифметика, связанные и в инструкции и »и» » Далеко «прыгает и звонит с непосредственными операндами.

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

[ редактировать ]

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

[ редактировать ]
Реализации канонического адресного пространства (диаграммы не масштабировать)
Текущая 48-битная реализация
57-битная реализация
64-битная реализация

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

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

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

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

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

[ редактировать ]

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

64 -битная запись таблицы страницы
Биты: 63 62 … 52 51 … 32
Содержание: Нкс сдержанный Бит 51… 32 базового адреса
Биты: 31 … 12 11 … 9 8 7 6 5 4 3 2 1 0
Содержание: Бит 31… 12 базовых адресов магнитный Глин Похлопывание Дюймовый А ПКД ПВТ Вошник R/w П

Intel внедрила схему с 5-уровневой таблицей страниц , которая позволяет процессорам Intel 64 поддерживать 57-битное виртуальное адресное пространство. [ 24 ] Дополнительные расширения могут разрешить полное 64-битное виртуальное адресное пространство и физическую память с 12-разрядными дескрипторами таблицы страниц и 16- или 21-битными смещениями памяти для 64 размеров распределения страниц и 2 MIB; Запись таблицы страниц будет расширена до 128 бит для поддержки дополнительных аппаратных флагов для размера страницы и размер виртуального адреса. [ 25 ]

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

[ редактировать ]

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

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

[ редактировать ]

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

Эксплуатационные режимы

[ редактировать ]

Архитектура имеет два основных режима работы: Long Mode и Legacy Mode.

Работа операционная система Требуется Тип запуска кода Размер (в битах) Количество регистров общего назначения
режим субмод адреса операнды ( по умолчанию курсив )
Длинный режим 64-битный режим 64-битная ОС, 64-битная прошивка UEFI или два предыдущих взаимодействий через 64-битный интерфейс UEFI в прошивке. 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
Реальный режим Bootloader прошивки BIOS , OS Real Mode или любая взаимодействие ОС с интерфейсом [ 30 ] Реальный режим 16, 20, 21 8, 16 , 32 [ м 1 ] 8
  1. ^ Jump up to: а беременный в дюймовый Обратите внимание, что 16-битный код, записанный для 80286 и ниже, не использует 32-разрядные инструкции операнда. Код, записанный для 80386 и выше, может использовать префикс переопределения размера опера (0x66). Обычно этот префикс используется защищенным и длинным кодом режима с целью использования 16-битных операндов, так как этот код будет запущен в сегменте кода с размером операнда по умолчанию 32 бита. В реальном режиме размер операнда по умолчанию составляет 16 бит, поэтому префикс 0x66 интерпретируется по -разному, изменяя размер операнда на 32 бита.
Диаграмма состояния режимов работы X86-64

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

[ редактировать ]

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

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

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

[ редактировать ]

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

Защищенный режим
[ редактировать ]

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

Реальный режим
[ редактировать ]

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

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

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

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

Имя Intel для этого набора инструкций изменилось несколько раз. Имя, используемое на IDF, было CT [ 34 ] (предположительно [ Оригинальное исследование? ] Для технологии Clackamas , еще одно кодовое имя из реки Орегон ); Через несколько недель они начали называть его IA-32E (для расширений IA-32 ), а в марте 2004 года обнародовало «официальное» название EM64T (технология расширенной памяти 64). В конце 2006 года Intel начала использовать имя Intel 64 для его реализации, параллельно использованию AMD имени AMD64. [ 35 ]

Первым процессором, который реализовал Intel 64, был многокачественный процессор Xeon Code-названного Nocona в июне 2004 года. Напротив, первоначальные чипы Prescott (февраль 2004 г.) не включили эту функцию. Intel впоследствии начала продавать Pentium 4S Intel 64 Pentium 4S, используя ревизию E0 Prescott Core, продавая на рынке OEM, как Pentium 4, Model F. Редакция E0 также добавляет Execute Disable (xD) (имя Intel для бита NX. ) в Intel 64, и был включен в тогдашний текущий кодовый код Xeon Irwindale . Официальный запуск Intel Intel 64 (под названием EM64T в то время) в основных настольных процессорах был N0 Stepping Prescott-2M.

Первый мобильный процессор Intel , реализующий Intel 64, является Merom версией Core 2 процессора, которая была выпущена 27 июля 2006 года. Ни один из более ранних процессоров Notel Book ( Core Duo , Pentium M , Celeron M , Mobile Pentium 4 ). Полем

Реализации

[ редактировать ]

Процессоры Intel, внедряющие архитектуру Intel64, включают в себя модели Pentium 4 F-Series/5x1, 506 и 516, Celeron D модели 3x1, 3x6, 355, 347, 352, 360 и 365 и все позже Celerons , все модели Xeon с тех пор » Nocona ", все модели двухъядерных процессоров Pentium с« Merom-2m », Atom 230, 330, D410, D425, D510, D525, N450, N455, N470, N475, N550, N570, N2600 и N2800, все версии Из Pentium D , Pentium Extreme Edition , Core 2 , Core I9 , Core I7 , Core I5 ​​и процессоров Core I3 и процессоров серии Xeon Phi 7200.

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

  • Сегментация Гейтс
  • 32-битное кольцо 0
    • VT-X больше не будет подражать этой функции
  • Кольца 1 и 2
  • Кольцо 3 порт ввода/вывода ( В / OUT ) доступ; Смотрите портовый ввод-вывод
  • Ввод/вывод строкового порта ( Инсмит / Выходы )
  • Real Mode (включая огромный реальный режим ), 16-битный защищенный режим, VM86
  • 16-битный режим адресации
    • VT-X больше не будет предоставлять неограниченный режим
  • 8259 поддержка; Единственным поддерживаемым APIC был бы x2apic
  • Некоторые неиспользованные биты режима операционной системы
  • 16-битный и 32-битный запуск IPI (SIPI)

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

Расширенные расширения производительности

[ редактировать ]

Advanced Performance Advensions-это предложение Intel 2023 года для новых инструкций и дополнительные 16 регистров общего назначения.

Внедрение VIA X86-64

[ редактировать ]

Via Technologies представила свою первую реализацию архитектуры X86-64 в 2008 году после пяти лет разработки от подразделения процессора Centaur Technology . [ 38 ] Кодовым названием «Исаия», 64-разрядная архитектура была представлена ​​24 января 2008 года, [ 39 ] и запущен 29 мая под Via Nano . торговой маркой [ 40 ]

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

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

[ редактировать ]

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

Уровни микроархитектуры процессора
Название уровня Особенности процессора Пример инструкции Поддерживаемые процессоры
(базовая линия)
Также как:
x86-64-V1
CMOV CMOV

Базовая линия для всех процессоров x86-64

Сопоставляет общие возможности между первоначальными реализациями AMD AMD64 и Intel EM64T 2003 года в AMD K8 и Intel Prescott Processor.

CX8 CMPXCHG8B
FPU флд
FXSR fxsave
MMX эммс
OSFXSR fxsave
Сцена Syscall
SSE CVTSS2SI
SSE2 CVTPI2PD
x86-64-V2 CMPXCHG16B CMPXCHG16B

Intel Nehalem и новые ядра Intel "Big"
Intel (Atom) Silvermont и более новые «маленькие» ядра Intel "
Amd Bulldozer и новые "большие" ядра AMD AMD
Амд Ягуар
Через Nano и Eden "C"

Функции соответствуют архитектуре Intel Nehalem 2008 года, исключая специфичные для Intel инструкции

Лахф-сахф Лахф
Popcnt Popcnt
SSE3 addsubpd
SSE4_1 blendpd
SSE4_2 Пса
SSSE3 pshufb
X86-64-V3 Ав Vzeroall

Intel Haswell и новые ядра Intel "Big" (только модели AVX2 включены)
Intel (Atom) Gracemont и более новые «маленькие» ядра Intel "
AMD Экскаватор и более новые ядра AMD "большие" ядра
Эмуляция Qemu (как версия 7.2) [ 45 ] [ 46 ]

Функции соответствуют архитектуре Intel Haswell 2013 года, за исключением инструкций по конкретным Intel

AVX2 vpermd
ИМТ1 ин
BMI2 Бжи
F16c vcvtph2ps
FMA VFMADD132PD
Lzcnt lzcnt
Movbe Movbe
Osxsave xgetbv
X86-64-V4 AVX512F Kmovw

Intel Skylake и более новые ядра Intel "Big" (только модели AVX512 включены)
Amd zen 4 и новые ядра Amd

Функции соответствуют архитектуре Intel Skylake-X 2017, исключая Intel-специфические инструкции

AVX512BW vdbpsAdbw
AVX512CD vplzcntd
AVX512DQ vpmullq
AVX512VL

Уровни функций микроархитектуры X86-64 также можно найти в виде AMD64-V1, AMD64-V2 .. или AMD64_V1 .. в настройках, где используется номенклатура «AMD64». Они используются в качестве синонимов с номенклатурой x86-64-Vx и, таким образом, функционально идентичны. Например, документация по языку GO или распределение Fedora Linux.

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

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

[ редактировать ]

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

Недавние реализации

[ редактировать ]
  • Intel 64 BSF и BSR Инструкции действуют иначе, чем AMD64, когда источник равен нулю, а размер операнда составляет 32 бита. Процессор устанавливает нулевой флаг и оставляет верхние 32 бит назначения неопределенным. [ Цитация необходима ] Обратите внимание, что Intel документирует, что в этом случае реестр назначения имеет неопределенное значение, но на практике в кремнеоне реализует то же поведение, что и AMD (Undodified). Отдельное утверждение о том, что может не сохранить биты в верхних 32, не было проверено, но было исключено только для Core 2 и Skylake, [ 48 ] Не все микроархитектуры Intel, такие как 64-битный Pentium 4 или атом с низкой мощностью.
  • AMD64 требует другого формата обновления микрокода и управления MSRS (Регистры-специфики для модели), в то время как Intel 64 реализует обновление MicroCode , неизменное из их 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-битное сегмент).
  • Когда MOVSXD Инструкция выполняется с помощью операнда источника памяти и размером с операнда 16 бит, операнд памяти будет доступен с 16-битным чтением на Intel 64, но 32-битный чтение на AMD64.
  • А FCOMI/ FCOMIP/ FUCOMI/ FUCOMIP Сравнение с плавающей точкой ) ( x87
  • Для VMASKMOVPS/ VMASKMOVPD/ VPMASKMOVD/ VPMASKMOVQ (AVX/AVX2 Masked Masked To/From Memory) Полем
  • Intel 64 не хватает способности сохранять и восстанавливать уменьшенную (и, следовательно, быстрее) версию состояния с плавающей точкой (с участием FXSAVE и FXRSTOR инструкции). [ нужно разъяснения ]
  • Процессоры AMD с тех пор, как Opteron Rev. E и Athlon 64 Rev. D вновь вновь ограничили поддержку сегментации с помощью предела сегмента длинного режима, включенного (LMSLE), чтобы облегчить виртуализацию 64-битных гостей. [ 51 ] [ 52 ] Поддержка LMLSE была удалена в процессоре Zen 3. [ 53 ]
  • При возврате к неканоническому адресу с использованием SYSRET, Процессоры AMD64 выполняют обработчик разломов общей защиты на уровне 3, [ 54 ] В то время как на процессорах Intel 64 он выполняется на уровне привилегий 0. [ 55 ]
  • Гарантии на заказ, предоставленные некоторыми инструкциями по заказам памяти, таким как LFENCE и MFENCE Различитесь между Intel 64 и AMD64:
    • LFENCE Spatch-Serialization (позволяет использовать его в качестве ограждения спекуляции ) в Intel 64, но не гарантированно не будет направлено диспетчеризацию на AMD64. [ 56 ]
    • MFENCE является полностью сериализационной инструкцией (включая сериализацию инструкций) на AMD64, но не Intel 64.

Более старые реализации

[ редактировать ]
  • Процессоры AMD64 до пересмотра F [ 57 ] (отличается переключением от DDR на память DDR2 и новые розетки AM2 , F и S1 ) от 2006 года, не хватает CMPXCHG16B инструкция, которая является расширением CMPXCHG8B Инструкция, присутствующая на большинстве процессоров после 80486 . Похоже на CMPXCHG8B, CMPXCHG16B Позволяет атомными операциями на восьмиджевых словах (128-битные значения). Это полезно для параллельных алгоритмов, которые используют сравнение и обмен на данные, больше, чем размер указателя, распространенный в алгоритмах без блокировки и без ожидания . Без CMPXCHG16B Нужно использовать обходные пути, такие как критический раздел или альтернативные подходы без блокировки. [ 58 ] Его отсутствие также предотвращает 64-разрядную Windows до того, как Windows 8.1 имеет адресное пространство для пользовательского режима, превышающее 8 TIB . [ 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. Он был добавлен в Stepping E0 (0F41H) Pentium 4 в октябре 2004 года. [ 69 ] Эта функция требуется всеми версиями Windows 8.
  • Ранние реализации Intel 64 имели 36-разрядную (64 GIB) физическую адресацию памяти, в то время как оригинальные реализации AMD64 имели 40-битную (1 TIB ) физическую адресу. Intel использовала 40-битную физическую адресу первой на Xeon MP ( Potomac ), запущенный 29 марта 2005 года. [ 70 ] Разница не является разницей в пользователе, видимой ИСА. В 2007 году AMD 10H Opteron был первым, кто предоставил 48 -битное (256 TIB) физическое адресное пространство. [ 71 ] [ 72 ] Физическая адресация Intel 64 была продлена до 44 бит (16 TIB) в Nehalem-Ex в 2010 году [ 73 ] и до 46 бит (64 TIB) на Сэнди -мосту E в 2011 году. [ 74 ] [ 75 ] Благодаря масштабируемым процессорам 3-го поколения 3-го поколения Ice Lake Intel увеличила виртуальную адресацию до 57 бит (128 пиб ) и физического до 52 битов (4 пиб) в 2021 году, что требует 5-уровневой пейджинг . [ 76 ] В следующем году AMD64 добавил то же самое в EPYC 4 -го поколения (Genoa). [ 77 ] Несерверные процессоры дольше сохраняют меньшие адресные пространства.

Принятие

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

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

По состоянию на 2023 год , HPE EPYC суперкомпьютер на основе под названием Frontier -номер один. Первый суперкомпьютер на основе ARM появился в списке в 2018 году [ 79 ] А в последние годы не CPU архитектурные соавторы ( GPGPU ) также сыграли большую роль в производительности. Коприцессоры Intel Xeon Phi "Knight Corner" , которые реализуют подмножество X86-64 с некоторыми векторными расширениями, [ 80 ] также используются вместе с процессорами x86-64 в суперкомпьютере Tianhe-2 . [ 81 ]

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

[ редактировать ]

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

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

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

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

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

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

ПРИНАДЛЕЖАЩИЙ

[ редактировать ]

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

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

Linux был первым ядром операционной системы, которая запустила архитектуру x86-64 в длинном режиме , начиная с версии 2.4 в 2001 году (предшествующий доступности оборудования). [ 88 ] [ 89 ] Linux также обеспечивает обратную совместимость для выполнения 32-битных исполнителей. Это позволяет перерабатывать программы в длительный режим при сохранении 32-разрядных программ. Текущие дистрибутивы Linux с x86-64-коренными ядрами и пользователями . Некоторые, такие как 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 GIB, она также уменьшает след в памяти программы и в некоторых случаях может позволить ее работать быстрее. [ 91 ] [ 92 ] [ 93 ]

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

Mac OS X 10.4.7 и более высокие версии Mac OS X 10.4. Запуск 64-разрядных инструментов командной строки с использованием библиотек POSIX и Math на 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-разрядные приложения GUI с использованием Cocoa , Quartz , OpenGL и X11 на 64-битных машинах на основе Intel, а также на 64-битных PowerPC . машинах [ 97 ] Все библиотеки и фреймворки без GUI также поддерживают 64-разрядные приложения на этих платформах. Ядро и все расширения ядра, только 32-битные.

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

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

MacOS 10.15 включает только 64-битное ядро ​​и больше не поддерживает 32-битные приложения. Это удаление поддержки представило проблему для WineHQ (и Commercial Version 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-битные исполняемые файлы, библиотеки и системные вызовы.

x64 Editions of Microsoft Windows Client and Server - Windows XP Professional X64 Edition и Windows Server 2003 X64 Edition - были выпущены в марте 2005 года. [ 103 ] Внутренне они на самом деле такая же сборка (5.2.3790.1830 SP1), [ 104 ] [ 105 ] По мере того, как они делятся теми же исходными базовыми и двухворками операционной системы, и даже обновления системы выпускаются в унифицированных пакетах, в том же духе, как Professional и Server Editions Windows 2000 для X86. Windows Vista , которая также имеет много разных выпусков, была выпущена в январе 2007 года. Windows 7 была выпущена в июле 2009 года. Windows Server 2008 R2 был продан только в X64 и итанийных изданиях; Более поздние версии Windows Server предлагают только издание X64.

Версии Windows для x64 до Windows 8.1 и Windows Server 2012 R2 предлагают следующее:

  • 8 TIB виртуального адресного пространства для процесса, доступного как из пользовательского режима, так и из режима ядра, называемого адресным пространством пользовательского режима. Программа X64 может использовать все это, в зависимости от ограничений хранилища в системе, и при условии, что она связана с опцией «Большой знакомство с адресом», которая присутствует по умолчанию. [ 106 ] Это увеличение в 4096 раза по сравнению с виртуальным адресным пространством пользователя по умолчанию 2 GIB, предлагаемом 32-разрядными Windows. [ 107 ] [ 108 ]
  • 8 Виртуальное адресное пространство режима ядра для операционной системы. [ 107 ] Как и в случае адресного пространства пользовательского режима, это увеличение в 4096 раз в 32-битные версии Windows. Повышенное пространство в основном приносит пользу кэше файловой системы и режима ядра «кучи» (без страхового бассейна и Page Prage Pool). Windows использует только 16 TIB из 256 TIB, реализованных процессорами, потому что в ранних процессорах AMD64 не было CMPXCHG16B инструкция [ 109 ]

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

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

  • Возможность запускать существующие 32-битные приложения ( .exe программы) и библиотеки динамических ссылок ( .dllS) Использование WOW64 , если WOW64 поддерживается в этой версии. Кроме того, 32-разрядная программа, если она была связана с опцией «Большой адрес знания адреса», [ 106 ] может использовать до 4 Gib виртуального адресного пространства в 64-битных окнах вместо 2 Gib (опционально 3 Gib с /3GB Опция загрузки и параметр «Большой адрес знания адреса»), предлагаемая 32-разрядными Windows. [ 110 ] В отличие от использования /3GB Опция загрузки на x86, это не уменьшает виртуальное адресное пространство режима ядра, доступное для операционной системы. Таким образом, 32-разрядные приложения могут извлечь выгоду из запуска на Windows x64, даже если они не перекомпилированы для X86-64.
  • Как 32-, так и 64-битные приложения, если не связаны с «большим знанием адресов», ограничены 2 GIB виртуального адресного пространства.
  • Возможность использовать до 128 GIB (Windows XP/Vista), 192 GIB (Windows 7), 512 GIB (Windows 8), 1 TIB (Windows Server 2003), 2 TIB (Windows Server 2008/Windows 10), 4 TIB ( Windows Server 2012), или 24 TIB (Windows Server 2016/2019) физической памяти случайного доступа (ОЗУ). [ 111 ]
  • Модель данных LLP64 : в C/C ++, «int» и «длинные» типы шириной 32 бита, «длиной длиной» составляет 64 бита, а указатели и типы, полученные из указателей, имеют ширину 64 бита.
  • Драйверы устройства режима ядра должны быть 64-битными версиями; Невозможно запустить 32-разрядные исполняемые файлы режима ядра в 64-битной операционной системе. Драйверы устройств пользователя могут быть 32-битными или 64-битными.
  • 16-битные приложения Windows (WIN16) и DOS не будут выполняться в версиях Windows x86-64 из-за удаления подсистемы виртуальной машины DOS (NTVDM), которая опиралась на возможность использования режима виртуального 8086. Виртуальный режим 8086 не может быть введен во время работы в длинном режиме.
  • Полная реализация функции защиты страницы NX (без выполнения). Это также реализовано на недавних 32-разрядных версиях Windows, когда они запускаются в режиме PAE.
  • Вместо дескриптора сегмента FS на версиях X86 семейства Windows NT Descriptor сегмента 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 и Data Access, не будут переносить на 64-битную архитектуру, такие как X86-64 и IA-64. [ 113 ] [ 114 ] [ 115 ]
  • Microsoft Visual Studio может собирать собственные приложения для нацеливания либо на архитектуру x86-64, которая может работать только на 64-разрядной Microsoft Windows, либо архитектуре IA-32 , которая может работать в виде 32-разрядного приложения на 32-разрядной Microsoft Windows или Windows или Windows или 64-битная Microsoft Windows в режиме эмуляции WOW64 . Управляемые приложения могут быть скомпилированы в режимах IA-32, x86-64 или AnyCPU. Программное обеспечение, созданное в первых двух режимах, ведут себя как их аналоги IA-32 или x86-64 соответственно; Однако при использовании режима AnyCPU приложения в 32-разрядных версиях Microsoft Windows работают как 32-разрядные приложения, в то время как они запускаются в виде 64-разрядного приложения в 64-разрядных изданиях Microsoft Windows.

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

[ редактировать ]

Как PlayStation 4 , так и Xbox One , и все варианты этих консолей включают процессоры AMD X86-64 на основе Jaguar микроархитектуры . [ 116 ] [ 117 ] Прошивка и игры написаны в коде x86-64; Кодекс Legacy X86 не задействовано.

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

Несмотря на то, что в палубе STEAM считается, что палуба использует пользовательский ускоренный обработку 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 относится к процессору итаниума и не должен путать с 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 S x64 используют внутреннее прозвище AMD64 для обозначения различных компонентов, которые используют или совместимы с этой архитектурой. Например, процессору с переменной среды присваивается значение «AMD64», в отличие от «x86» в 32-разрядных версиях, а системный каталог на CD-ROM Windows X64-«AMD64», в отличие от «I386 "В 32-битных версиях. [ 121 ]
    • командование Sun's идентифицирует Solaris Исалистское как системы 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».
    • Хайку называет 64-битную архитектуру «x86_64».

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

[ редактировать ]

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

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

[ редактировать ]

Примечания

[ редактировать ]
  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 OSS и несколько распределений Linux [ 7 ] [ 8 ] Используйте AMD64, как и Microsoft Windows внутри. [ 9 ] [ 10 ]
  2. ^ На практике 64-разрядные операционные системы, как правило, не поддерживают 16-битные приложения, хотя современные версии Microsoft Windows содержат ограниченный обходной путь, который эффективно поддерживает 16-разрядные установки InstallShield и Microsoft ACME, молча заменяя их 32-разрядным кодом. [ 12 ]
  1. ^ Регистр сообщил, что ступенька G1 (0F49H) Pentium 4 будет выбран 17 октября и отправится в объеме 14 ноября. [ 66 ] Однако в документе Intel говорится, что образцы доступны 9 сентября, а 17 октября-«дата первой доступности материала после конверсии», которую Intel определяет как «прогнозируемая дата, которую клиент может рассчитывать на получение материалов после конверсии И ... Клиенты должны быть готовы получить постконвертированные материалы в эту дату ». [ 67 ]
  1. ^ "Debian AMD64 FAQ" . Debian Wiki . Архивировано с оригинала 26 сентября 2019 года . Получено 3 мая 2012 года .
  2. ^ Jump up to: а беременный в "x86-64 Кодовая модель" . Яблоко. Архивировано из оригинала 2 июня 2012 года . Получено 23 ноября 2012 года .
  3. ^ Jump up to: а беременный в arch(1) - Дарвина и Масоса по общим командам Руководство
  4. ^ Jump up to: а беременный в Кевин Ван Вехтен (9 августа 2006 г.). «Re: отчет об ошибках Intel XNU» . Список рассылки Darwin-Dev . Apple Computer . Архивировано из оригинала 1 февраля 2020 года . Получено 5 октября 2006 года . Инструменты ядра и разработчика стандартизированы на «x86_64» для названия архитектуры Mach-O
  5. ^ Jump up to: а беременный «Solaris 10 на Amd Opteron» . Оракул. Архивировано с оригинала 25 июля 2017 года . Получено 9 декабря 2010 года .
  6. ^ Jump up to: а беременный "Microsoft 64-битная вычисления" . Microsoft. Архивировано из оригинала 12 декабря 2010 года . Получено 9 декабря 2010 года .
  7. ^ "AMD64 Port" . Дебюн. Архивировано с оригинала 26 сентября 2019 года . Получено 23 ноября 2012 года .
  8. ^ "Gentoo/AMD64 Project" . Gentoo Project. Архивировано из оригинала 3 июня 2013 года . Получено 27 мая 2013 года .
  9. ^ "WOW64 Детали реализации" . Архивировано с оригинала 13 апреля 2018 года . Получено 24 января 2016 года .
  10. ^ «Класс процессархитектуры» . Архивировано из оригинала 3 июня 2017 года . Получено 24 января 2016 года .
  11. ^ Jump up to: а беременный в дюймовый и фон глин час я Дж k л м не а п Q. ведущий с Т в Корпорация AMD (декабрь 2016 г.). «Том 2: системное программирование» (PDF) . Руководство по программисту AMD64 . AMD Corporation. Архивировано (PDF) из оригинала 13 июля 2018 года . Получено 25 марта 2017 года .
  12. ^ Раймонд Чен (31 октября 2013 г.). «Если в 64-разрядных окнах нет 16-битного эмуляционного слоя, почему определенным 16-разрядным монтажам разрешено работать?» Полем Архивировано из оригинала 14 июля 2021 года . Получено 14 июля 2021 года .
  13. ^ «IBM Websphere Application Server 64-битный демистифицирован» (PDF) . IBM Corporation. 6 сентября 2007 г. с. 14. Архивировано (PDF) из оригинала 25 января 2022 года . Получено 9 апреля 2010 года . На рисунках 5, 6 и 7 также показаны 32-разрядные версии приложений «Запустить» на полных нативных аппаратных характеристиках на платформах 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. ^ Руководство по программисту AMD64 (PDF) . п. 1
  17. ^ Mauerer, W. (2010). Профессиональная архитектура ядра Linux. Джон Уайли и сыновья.
  18. ^ «Руководство по программному обеспечению программного обеспечения Intel 64 и IA-32 Architectures, Volume 3A: Руководство по программированию системного программирования, часть 1» (PDF) . С. 4–7. Архивировано (PDF) из оригинала 16 мая 2011 года . Получено 10 июля 2019 года .
  19. ^ Jump up to: а беременный «BIOS и Руководство по разработчику BIOS и ядра (BKDG) для процессоров AMD Family 10H» (PDF) . п. 24. Архивированный (PDF) из оригинала 18 апреля 2016 года . Получено 27 февраля 2016 года . Физическое адресное пространство увеличилось до 48 бит.
  20. ^ «Миф и факты около 64-битного Linux» (PDF) . 2 марта 2008 г. с. 7. Архивировано из оригинала (PDF) 10 октября 2010 года . Получено 30 мая 2010 года . Физическое адресное пространство увеличилось до 48 бит
  21. ^ Шенли, Том (1998). Pentium Pro и Pentium II Системная архитектура . Серия архитектуры системы ПК (второе изд.). Аддисон-Уэсли. п. 445 . ISBN  0-201-30973-4 .
  22. ^ Microsoft Corporation. «Что такое PAE, NX и SSE2, и почему мой компьютер должен поддержать их для запуска Windows 8?» Полем Архивировано с оригинала 11 апреля 2013 года . Получено 19 марта 2013 года .
  23. ^ Jump up to: а беременный в дюймовый «Пределы памяти для выпусков Windows» . MSDN . Microsoft . 16 ноября 2013 года. Архивировано с оригинала 6 января 2014 года . Получено 20 января 2014 года .
  24. ^ «5-уровневое петля и 5-уровневое EPT» (PDF) . Intel. Май 2017 года. Архивировал (PDF) из оригинала 5 декабря 2018 года . Получено 17 июня 2017 года .
  25. ^ Патент США 9858198 , Ларри Сейлер, «Система страниц 64 КБ, которая поддерживает операцию на странице 4 КБ», опубликован 2016-12-29, выпущен 2018-01-02, назначенный Intel Corp.  
  26. ^ «Материнские платы серии Opteron 6100» . Supermicro Corporation. Архивировано из оригинала 3 июня 2010 года . Получено 22 июня 2010 года .
  27. ^ «Супермикрос ксу» . Supermicro Corporation. Архивировано из оригинала 27 мая 2010 года . Получено 20 июня 2010 года .
  28. ^ «Оптерон 8000 серий» . Supermicro Corporation. Архивировано из оригинала 27 мая 2010 года . Получено 20 июня 2010 года .
  29. ^ «Матрица продукта Tyan» . Международная корпорация MITEC. Архивировано из оригинала 6 июня 2010 года . Получено 21 июня 2010 года .
  30. ^ Jump up to: а беременный «Из архивов AMI: Amibios 8 и переход к EFI» . Американские мегатренды . 8 сентября 2017 года. Архивировано с оригинала 25 октября 2021 года . Получено 25 октября 2021 года .
  31. ^ "Intel продолжает проект Yamhill?" Полем Невин . Архивировано из оригинала 5 июня 2022 года . Получено 5 июня 2022 года .
  32. ^ «Крейг Барретт подтверждает 64 -битные расширения адреса для Xeon. И Prescott» . Inquirer. 17 февраля 2004 года. Архивировано с оригинала 12 января 2013 года . Получено 20 августа 2017 года .
  33. ^ « Обзор 64-битных вычислений», от InternetNews.com » . Архивировано из оригинала 25 сентября 2012 года . Получено 18 сентября 2006 года .
  34. ^ Lapedus, Марк (6 февраля 2004 г.). «Intel для демонстрации 64-битной линии процессора CT 'в IDF» . Эдн ​Aspencore Media. Архивировано из оригинала 25 мая 2021 года . Получено 25 мая 2021 года .
  35. ^ «Архитектура Intel 64» . Intel . Архивировано из оригинала 29 июня 2011 года . Получено 29 июня 2007 года .
  36. ^ «Intel публикует" x86-S "спецификация для 64-битной архитектуры» . www.phoronix.com .
  37. ^ Jump up to: а беременный «Представляя упрощенную архитектуру Intel для будущего» . Intel .
  38. ^ «Через запуск новой архитектуры процессора в 1Q08» (требуется подписка) . Цифры . 25 июля 2007 года. Архивировано с оригинала 3 декабря 2008 года . Получено 25 июля 2007 года .
  39. ^ Стоукс, Джон (23 января 2008 г.). «Исаия рассказал: новая архитектура с низким энергопотреблением VIA» . Ars Technica. Архивировано из оригинала 27 января 2008 года . Получено 24 января 2008 года .
  40. ^ «Через запуск через Nano процессор Family» (пресс -релиз). С ПОМОЩЬЮ . 29 мая 2008 года. Архивировано с оригинала 3 февраля 2019 года . Получено 25 мая 2017 года .
  41. ^ «Via Isaiah Architecture введение» (PDF) . С ПОМОЩЬЮ . 23 января 2008 года. Архивировано из оригинала (PDF) 7 сентября 2008 года . Получено 31 июля 2013 года .
  42. ^ Веймер, Флориан (10 июля 2020 г.). «Новые уровни микроархитектуры X86-64» . LLVM-DEV (список рассылки). Архивировано из оригинала 14 апреля 2021 года . Получено 11 марта 2021 года .
  43. ^ Веймер, Флориан (5 января 2021 г.). «Построение Red Hat Enterprise Linux 9 для уровня микроархитектуры x86-64-V2» . Блог разработчиков Red Hat . Архивировано из оригинала 20 февраля 2022 года . Получено 22 марта 2022 года .
  44. ^ «Система v Приложение Бинарный интерфейс Информация о низком уровне» . x86-64 Psabi Repo . 29 января 2021 года. Архивировано из оригинала 2 февраля 2021 года . Получено 11 марта 2021 года - через Gitlab .
  45. ^ "QEMU версия 7.2.0 выпущена - Qemu" . www.qemu.org . Архивировано из оригинала 21 декабря 2022 года . Получено 9 января 2023 года .
  46. ^ «Чангэлог/7,2 - Qemu» . wiki.qemu.org . Архивировано из оригинала 9 января 2023 года . Получено 9 января 2023 года .
  47. ^ Уоссон, Скотт (23 марта 2005 г.). «64-битные вычисления в теории и практике» . Технический отчет . Архивировано из оригинала 12 марта 2011 года . Получено 22 марта 2011 года .
  48. ^ «Обсуждение переполнения стека» . Март 2021 года. Архивировано с оригинала 11 января 2023 года . Получено 2 марта 2021 года .
  49. ^ «Intel 64 и IA-32 Architectures Software's Developer Руководство 2 (2A, 2B и 2C): ссылка на набор инструкций, A-Z» (PDF) . Intel. Сентябрь 2013 г. с. 4–397. Архивировано (PDF) из оригинала 20 октября 2013 года . Получено 21 января 2014 года .
  50. ^ «Intel 64 и IA-32 Architectures Software's Developer Руководство 2 (2A, 2B и 2C): ссылка на набор инструкций, AZ» (PDF) . Intel. Сентябрь 2013 г. с. 4–400. Архивировано (PDF) из оригинала 20 октября 2013 года . Получено 21 января 2014 года .
  51. ^ «Как пенсионерская сегментация в длинном режиме AMD64 сломал VMware» . PageTable.com. 9 ноября 2006 г. Архивировано с оригинала 18 июля 2011 года . Получено 2 мая 2010 года .
  52. ^ «Технология виртуализации VMware и CPU» (PDF) . VMware. Архивировано (PDF) из оригинала 17 июля 2011 года . Получено 8 сентября 2010 года .
  53. ^ «Архив Linux-Kernel: [Патч 2/5] KVM: SVM: Dislow Efer.lmsle на аппаратном обеспечении, которое не поддерживает его» . lkml.indiana.edu . Получено 3 ноября 2023 года .
  54. ^ «AMD64 Архитектура-программист Руководство 3: Инструкции по общему назначению и систем» (PDF) . Амд. Май 2018. С. 419. Архивировал (PDF) из оригинала 20 августа 2018 года . Получено 2 августа 2018 года .
  55. ^ «Intel 64 и IA-32 Architectures Software's Developer Руководство 2 (2A, 2B и 2C): ссылка на набор инструкций, AZ» (PDF) . Intel. Сентябрь 2014 г. с. 4–412. Архивировано (PDF) из оригинала 13 января 2015 года . Получено 28 декабря 2014 года .
  56. ^ Хади Брайс, значение обучения X86 LFENCE , 14 мая 2018 года. Архивировано 10 июня 2023 года.
  57. ^ «Живая миграция с расширенной технологией миграции AMD-V ™» (PDF) . Developer.amd.com . Архивировано (PDF) из оригинала 6 декабря 2022 года . Получено 30 июня 2022 года .
  58. ^ Магед М. Майкл. «Практические реализации LL/SC/VL без ожидания и без ожидания с использованием 64-битного CAS» (PDF) . IBM. Архивировано (PDF) из оригинала 2 мая 2013 года . Получено 21 января 2014 года .
  59. ^ Дарвоу (20 августа 2004 г.). "Почему в любом случае виртуальное адресное пространство 4 ГБ?" Полем Старая новая вещь . Microsoft. Архивировано с оригинала 26 марта 2017 года . Получено 25 марта 2017 года .
  60. ^ Jump up to: а беременный «Системные требования - Windows 8.1» . Архивировано из оригинала 28 апреля 2014 года . Получено 27 апреля 2014 года . Чтобы установить 64-битную ОС на 64-битном ПК, ваш процессор должен поддерживать CMPXCHG16B, PrefetchW и LAHF/SAHF.
  61. ^ Петков, Борислав (10 августа 2009 г.). "Re: [Patch V2] x86: Очистка неправильно вынуждено x86_feature_lahf_lm флаг" . Список рассылки ядра Linux . Архивировано из оригинала 11 января 2023 года . Получено 30 июня 2022 года .
  62. ^ «Руководство по пересмотру процессоров AMD Athlon 64 и AMD Opteron» (PDF) . Амд. Архивировано (PDF) из оригинала 24 августа 2009 года . Получено 18 июля 2009 года .
  63. ^ «Уведомление об изменении продукта 105224 - 01» (PDF) . Intel. Архивировано из оригинала (PDF) 17 ноября 2005 года.
  64. ^ «Intel® Pentium® D Processor 800 Sequence и Intel® Pentium® Extreme Edition 840 Обновление спецификации» (PDF) . Архивировано (PDF) из оригинала 18 мая 2021 года . Получено 30 июня 2022 года .
  65. ^ «Intel Xeon 2,8 ГГц - NE80551KG0724MM / BX80551KG2800HA» . ЦП-мир . Архивировано из оригинала 28 июня 2020 года . Получено 30 июня 2022 года .
  66. ^ Смит, Тони (23 августа 2005 г.). «Intel Tweaks EM64T для полной совместимости AMD64» . Реестр . Архивировано с оригинала 30 июня 2022 года . Получено 30 июня 2022 года .
  67. ^ «Уведомление об изменении продукта 105271 - 00» (PDF) . Intel. Архивировано из оригинала (PDF) 17 ноября 2005 года.
  68. ^ 0F47H дебютировал в B0 Stepping of Pentium D 21 октября, [ 63 ] [ 64 ] но 0F48H, который также поддерживает LAHF/SAHF, запущенную 10 октября в двухъядерном Xeon . [ 65 ] [ А ]
  69. ^ «Уведомление об изменении продукта 104101 - 00» (PDF) . Intel. Архивировано из оригинала (PDF) 16 июля 2004 года.
  70. ^ «64-битный процессор процессора Intel® Xeon ™ с таблицей кэша до 8 МБ» (PDF) . Архивировано (PDF) из оригинала 17 ноября 2022 года . Получено 17 ноября 2022 года .
  71. ^ «Джастин Боггс в Microsoft PDC 2008» . п. 5. Архивировано из оригинала 17 ноября 2022 года . Получено 17 ноября 2022 года .
  72. ^ Уолдекер, Брайан. «Multicore процессоры AMD Opteron» (PDF) . п. 13. Архивировано (PDF) из оригинала 13 декабря 2022 года . Получено 17 ноября 2022 года .
  73. ^ "Intel® Xeon® Processor 7500 DataShing, том 2" (PDF) . Архивировано (PDF) из оригинала 17 ноября 2022 года . Получено 17 ноября 2022 года .
  74. ^ «Руководство по программному обеспечению программного обеспечения Intel 64 и IA-32 Architectures» . Сентябрь 2014 г. с. 2-21. Архивировано из оригинала 14 мая 2019 года. Архитектура Intel 64 увеличивает линейное адресное пространство для программного обеспечения до 64 бит и поддерживает физическое адресное пространство до 46 бит.
  75. ^ Логан, Том (14 ноября 2011 г.). "Intel Core i7-3960x обзор" . Архивировано с оригинала 28 марта 2016 года . Получено 1 июля 2022 года .
  76. ^ Ye, Huaisheng. «Введение в 5-уровневую подключение в 3-м поколении Intel Xeon Scalable процессоров с Linux» (PDF) . Леново. Архивировано (PDF) из оригинала 26 мая 2022 года . Получено 1 июля 2022 года .
  77. ^ Кеннеди, Патрик (10 ноября 2022 года). «Amd Epyc Genoa Apare Intel Xeon в потрясающей моде» . Сервис . п. 2. Архивировано с оригинала 17 ноября 2022 года . Получено 17 ноября 2022 года .
  78. ^ «Статистика | Сайты суперкомпьютеров TOP500» . Top500.org. Архивировано с оригинала 19 марта 2014 года . Получено 22 марта 2014 года .
  79. ^ «Генератор сублистов | Сайты суперкомпьютеров TOP500» . www.top500.org . Архивировано из оригинала 7 декабря 2018 года . Получено 6 декабря 2018 года .
  80. ^ «Intel® Xeon Phitm Coprocessor Set Set Set Architecture Manual» (PDF) . Intel. 7 сентября 2012 года. Раздел B.2 Intel Xeon Phi Coprocessor 64 -битный режим. Архивировано (PDF) из оригинала 21 мая 2014 года . Получено 21 мая 2014 года .
  81. ^ «Intel поддерживает самый быстрый суперкомпьютер в мире, раскрывает новые и будущие высокопроизводительные технологии вычислений» . Архивировано из оригинала 22 июня 2013 года . Получено 21 июня 2013 года .
  82. ^ «CVS Commit: SRC/SYS/AMD64/AMD64 GenAssym.C SRC/SYS/AMD64/Включите ASM.H ATOMIC.H BOONINFO.H COREDUMP.H CPUFUNC.H ELF.H ENDIAN.H EXEC.H FLOAT.H FPU. h frame.h globaldata.h ieeefp.h limits.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 г.
  83. ^ "AMD64 Port" . Архивировано из оригинала 18 мая 2010 года . Получено 3 мая 2009 г.
  84. ^ "Dragonflybsd: Googlesoc2008" . Архивировано с оригинала 27 апреля 2009 года . Получено 3 мая 2009 г.
  85. ^ «Лето кода приняла студентов» . Архивировано из оригинала 4 сентября 2010 года . Получено 3 мая 2009 г.
  86. ^ "Dragonflybsd: Release24" . Архивировано из оригинала 23 сентября 2009 года . Получено 3 мая 2009 г.
  87. ^ «Учебное пособие по введению защищенного и длинного режима из DOS» . Архивировано из оригинала 22 февраля 2017 года . Получено 6 июля 2008 года .
  88. ^ Энди Клин (26 июня 2001 г.). «Портирование Linux в x86-64» . Архивировано из оригинала 10 сентября 2010 года. Статус: ядро, компилятор, работа по цепочке инструментов. Ядро ботится и работают над симулятором и используется для порта пользовательских и запущенных программ
  89. ^ Энди Клин. «Страница Энди Клин» . Архивировано из оригинала 7 декабря 2009 года . Получено 21 августа 2009 г. Это была оригинальная статья, описывающая порт ядра Linux x86-64 назад, когда x86-64 был доступен только на симуляторах.
  90. ^ "Arch64 FAQ" . 23 апреля 2012 года. Архивировано с оригинала 14 мая 2012 года . Получено 11 мая 2012 года . Вы можете использовать Multilib Packages или I686 Chroot.
  91. ^ Jump up to: а беременный Торстен Лемхуис (13 сентября 2011 г.). «Журнал ядра: x32 Abi получает около 64-битных недостатков» . www.h-online.com. Архивировано из оригинала 28 октября 2011 года . Получено 1 ноября 2011 года .
  92. ^ Jump up to: а беременный «X32-32-битный ABI для x86-64» . linuxplumbersconf.org. Архивировано из оригинала 5 мая 2012 года . Получено 1 ноября 2011 года .
  93. ^ Jump up to: а беременный "x32-abi" . Сайты Google. Архивировано с оригинала 30 октября 2011 года . Получено 1 ноября 2011 года .
  94. ^ "AMD64 Port" . debian.org. Архивировано с оригинала 26 сентября 2019 года . Получено 29 октября 2011 года .
  95. ^ «5-уровневая подкупа» . kernel.org . Получено 7 февраля 2024 года .
  96. ^ «Apple - Mac OS X XCODE 2.4 Примечания: инструменты компилятора» . Apple Inc. 11 апреля 2007 года. Архивировано из оригинала 22 апреля 2009 года . Получено 19 ноября 2012 года .
  97. ^ «Apple - Mac OS X Leopard - технология - 64 -битная» . Apple Inc. Архивирована с оригинала 12 января 2009 года . Получено 19 ноября 2012 года .
  98. ^ «Mac OS X V10.6: Mac, которые используют 64-битное ядро» . Apple Inc. Архивировала из оригинала 31 августа 2009 года . Получено 29 ноября 2012 года .
  99. ^ Джон Сиракуза. «Mac OS X 10.6 Snow Leopard: The Ars Technica Review» . Ars Technica LLC. Архивировано из оригинала 9 октября 2009 года . Получено 20 июня 2010 года .
  100. ^ «Mac OS X Technology» . Apple Inc. Архивирована из оригинала 28 марта 2011 года . Получено 19 ноября 2012 года .
  101. ^ Шмид, J; Томас, K; Ramey, J; Czekalla, U; Матье, б; Абхирам, R (10 сентября 2019 г.). «Так что у нас нет решения для Каталины ... пока» . Блог Codeweavers . Архивировано из оригинала 29 сентября 2021 года . Получено 29 сентября 2021 года .
  102. ^ Томасес, Кен (11 декабря 2019 г.). "Win32 на macos" . WineHQ Архивировано с оригинала 11 ноября 2020 года . Получено 29 сентября 2021 года .
  103. ^ «Microsoft повышает ограничение скорости с доступностью 64-битных выпусков Windows Server 2003 и Windows XP Professional» . Microsoft News Center (пресс -релиз). 25 апреля 2005 г. Получено 29 января 2024 года .
  104. ^ «Описание версий Windows Server 2003 и Windows XP Professional X64 на основе X64» . Поддержка Microsoft . Архивировано с оригинала 20 апреля 2016 года . Получено 14 августа 2016 года .
  105. ^ «Windows Server 2003 SP1 Инструменты администрирования» . Microsoft Download Center . Архивировано с оригинала 27 августа 2016 года . Получено 14 августа 2016 года .
  106. ^ Jump up to: а беременный «/Largeaddressaware (обрабатывать большие адреса)» . Visual Studio 2022 Документация - ссылка на линкеров MSVC - параметры линкеров MSVC . Microsoft. Архивировано из оригинала 21 декабря 2022 года . Получено 21 декабря 2022 года . Параметр /largeaddressaware сообщает линкеру, что приложение может обрабатывать адреса более 2 гигабайт.
  107. ^ Jump up to: а беременный в Мэтт Пьетрек (май 2006 г.). «Все, что вам нужно знать, чтобы начать программирование 64-битных систем Windows» . Microsoft . Получено 18 апреля 2023 года .
  108. ^ Крис Сент -Аманд (январь 2006 г.). «Переход к X64» . Microsoft . Получено 18 апреля 2023 года .
  109. ^ «За 44-разрядным пределом адресации виртуальной памяти Windows X86-64» . Архивировано из оригинала 23 декабря 2008 года . Получено 2 июля 2009 г.
  110. ^ Jump up to: а беременный «64-битное программирование для разработчиков игр» . Получено 18 апреля 2023 года .
  111. ^ «Пределы памяти для выпуска Windows и Windows Server» . Microsoft . Получено 18 апреля 2023 года .
  112. ^ Кингсли-Хьюз, Адриан (23 августа 2010 г.). «AMD прощается с 3DNOW! Набор инструкций» . Zdnet . Архивировано из оригинала 8 января 2023 года . Получено 8 января 2023 года .
  113. ^ «Общие руководящие принципы портирования» . Руководство по программированию для 64-битных окон. Microsoft Docs . Получено 18 апреля 2023 года .
  114. ^ «История драйвера для Microsoft SQL Server» . Microsoft Docs . Получено 18 апреля 2023 года .
  115. ^ «Microsoft Ole DB-провайдер для драйвера Jet и Jet ODBC доступен только в 32-битных версиях» . Доступ к офису. Microsoft Docs . KB957570 . Получено 18 апреля 2023 года .
  116. ^ Ананд Лал Шиппи (21 мая 2013 г.). «Xbox One: Анализ аппаратного обеспечения и сравнение с PlayStation 4» . Anandtech. Архивировано с оригинала 7 июня 2013 года . Получено 22 мая 2013 года .
  117. ^ «Тест Tech Spec: Xbox One против PlayStation 4» . Игра информатор. 21 мая 2013 года. Архивировано с оригинала 7 июня 2013 года . Получено 22 мая 2013 года .
  118. ^ «Чего ожидать от запуска Sony PlayStation 5 в ноябре» . Индийский экспресс . 31 августа 2020 года. Архивировано с оригинала 19 сентября 2020 года . Получено 14 сентября 2020 года .
  119. ^ Катресса, доктор Ян. «Hot Chips 2020 Live Blog: Microsoft Xbox серия X Архитектура системы (18:00 Pt)» . www.anandtech.com . Архивировано из оригинала 17 сентября 2020 года . Получено 14 сентября 2020 года .
  120. ^ Холлистер, Шон (12 ноября 2021 г.). «Steam Deck: пять больших вещей, которые мы узнали от саммита разработчика Valve» . Грава . Архивировано из оригинала 7 февраля 2022 года . Получено 12 ноября 2021 года .
  121. ^ «Поля процессархитектуры» . Архивировано из оригинала 28 апреля 2015 года . Получено 4 сентября 2013 года .
  122. ^ «Пример файла из Linux 3.7.8 Дерева источника ядра отображает использование термина x86_64» . Архивировано из оригинала 23 сентября 2005 года . Получено 17 февраля 2013 года .
  123. ^ США 6877084  
  124. ^ США 6889312  
  125. ^ США 6732258  
  126. ^ «Лицензионное соглашение патента между AMD и Intel» . 1 января 2001 года. Архивировано с оригинала 21 июня 2007 года . Получено 23 августа 2009 года .
  127. ^ «Соглашение об урегулировании AMD Intel» . Архивировано с оригинала 7 июля 2017 года . Получено 18 сентября 2017 года .
  128. ^ Стивен Шанкленд и Джонатан Э. Скиллингс (12 ноября 2009 г.). «Intel, чтобы заплатить AMD 1,25 млрд. Долл. США в виде антимонопольного урегулирования» . CNET. Архивировано с оригинала 8 ноября 2012 года . Получено 24 апреля 2012 года .
  129. ^ Смит, Райан (12 ноября 2009 г.). «AMD и Intel уласят свои различия: AMD может пойти на Fabless» . Anandtech . Архивировано из оригинала 13 мая 2010 года.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 74452361a53955af4984a3b4b02f0fc7__1725837060
URL1:https://arc.ask3.ru/arc/aa/74/c7/74452361a53955af4984a3b4b02f0fc7.html
Заголовок, (Title) документа по адресу, URL1:
x86-64 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)