~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 912D792E4F7A9AF0A1CAC156468E52A9__1716917940 ✰
Заголовок документа оригинал.:
✰ x86-64 - Wikipedia ✰
Заголовок документа перевод.:
✰ x86-64 — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/X86-64 ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/91/a9/912d792e4f7a9af0a1cac156468e52a9.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/91/a9/912d792e4f7a9af0a1cac156468e52a9__translat.html ✰
Дата и время сохранения документа:
✰ 20.06.2024 22:32:09 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 28 May 2024, at 20:39 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

x86-64 — Википедия Jump to content

х86-64

Из Википедии, бесплатной энциклопедии

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

x86-64 (также известный как x64 , x86_64 , AMD64 и Intel 64 ) [примечание 1] — это 64-битная версия x86 набора команд , впервые анонсированная в 1999 году. В ней представлены два новых режима работы: 64-битный режим и режим совместимости, а также новый 4-уровневый режим подкачки .

Благодаря 64-битному режиму и новому режиму подкачки он поддерживает гораздо большие объемы виртуальной и физической памяти , чем это было возможно в его 32-битных предшественниках, что позволяет программам хранить в памяти большие объемы данных. x86-64 также расширяет регистры общего назначения до 64-битных и увеличивает их количество с 8 (некоторые из которых имели ограниченную или фиксированную функциональность, например, для управления стеком) до 16 (полностью общего), а также предоставляет множество других улучшений. Арифметика с плавающей запятой поддерживается посредством обязательных SSE2 -подобных инструкций, а регистры стиля x87 / MMX обычно не используются (но все же доступны даже в 64-битном режиме); набор из 16 векторных регистров вместо этого используется по 128 бит каждый. (Каждый регистр может хранить одно или два числа двойной точности или от одного до четырех чисел одинарной точности или различные целочисленные форматы.) В 64-битном режиме инструкции изменяются для поддержки 64-битных операндов и 64-битного режима адресации .

Режим совместимости, определенный в архитектуре, позволяет 16-битным и 32-битным пользовательским приложениям работать без изменений, сосуществуя с 64-битными приложениями, если 64-битная операционная система их поддерживает. [11] [заметка 2] Поскольку полные наборы 16-битных и 32-битных команд x86 остаются реализованными на аппаратном уровне без какой-либо промежуточной эмуляции, эти старые исполняемые файлы могут работать с небольшим снижением производительности или вообще без него. [13] в то время как новые или модифицированные приложения могут использовать преимущества новых функций конструкции процессора для повышения производительности. Кроме того, процессор, поддерживающий x86-64, по-прежнему включается в реальном режиме для полной обратной совместимости с 8086 процессоры x86, поддерживающие защищенный режим, , как это делали начиная с 80286 .

Исходная спецификация, созданная AMD и выпущенная в 2000 году, была реализована AMD, Intel и VIA . Микроархитектура AMD K8 . , в процессорах Opteron и Athlon 64 , была первой, которая реализовала ее Это было первое существенное дополнение к архитектуре x86 , разработанное не Intel. Intel была вынуждена последовать этому примеру и представила модифицированное семейство NetBurst , программно совместимое со спецификацией AMD. VIA Technologies представила x86-64 в своей архитектуре VIA Isaiah с VIA Nano .

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

AMD64 [ править ]

Логотип AMD64

История [ править ]

AMD64 (также по-разному именуемая AMD в литературе и документации как «64-битная технология AMD» и «Архитектура AMD x86-64») была создана как альтернатива радикально отличающейся архитектуре IA-64, разработанной Intel и Hewlett-Packard. , который был обратно несовместим с IA-32 , 32-битной версией архитектуры x86 . Первоначально AMD анонсировала AMD64 в 1999 году. [14] полная спецификация будет доступна в августе 2000 года. [15] Поскольку AMD никогда не приглашалась участвовать в разработке архитектуры IA-64, а любое лицензирование казалось маловероятным, архитектура AMD64 с самого начала позиционировалась AMD как эволюционный способ добавления 64-битных вычислительных возможностей к существующей архитектуре x86. при поддержке устаревшего 32-битного кода x86 , в отличие от подхода Intel по созданию совершенно новой, полностью несовместимой с x86 64-битной архитектуры с 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 («Палермо» E6 со степпингом и все модели «Манила»), 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 наборы инструкций (например, PA-RISC , Power ISA и MIPS имеют 32 GPR; Alpha , 64-битный ARM и SPARC имеют 31) или VLIW -подобные машины, такие как IA-64 (который имеет 128 регистров). Однако реализация AMD64 может иметь гораздо больше внутренних регистров, чем количество архитектурных регистров, предоставляемых набором команд (см. переименование регистров ). (Например, ядра AMD Zen имеют 168 64-битных целочисленных и 160 128-битных векторных физических внутренних регистров с плавающей запятой.)
Дополнительные регистры XMM (SSE)
Аналогично, количество 128-битных регистров XMM (используемых для потоковой передачи инструкций SIMD ) также увеличено с 8 до 16.
Традиционный стек регистров x87 FPU не включен в расширение размера файла регистров в 64-битном режиме по сравнению с регистрами XMM, используемыми SSE2, которые были расширены. Стек регистров x87 не является простым файлом регистров, хотя он обеспечивает прямой доступ к отдельным регистрам посредством недорогих операций обмена.
Большее виртуальное адресное пространство
Архитектура AMD64 определяет 64-битный формат виртуального адреса, младшие 48 бит которого используются в текущих реализациях. [11] : 120  Это позволяет использовать до 256 ТиБ (2 48 байт ) виртуального адресного пространства. Определение архитектуры позволяет увеличить этот предел в будущих реализациях до полных 64 бит. [11] : 2  : 3  : 13  : 117  : 120  расширение виртуального адресного пространства до 16 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» прыгает и вызывает непосредственные операнды.

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

Адреса в канонической форме [ править ]

Реализации канонического адресного пространства (диаграммы не в масштабе)
Текущая 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'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 год , не было известных материнских плат 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
  1. ^ Перейти обратно: а б с д Обратите внимание, что 16-битный код, написанный для 80286 и ниже, не использует 32-битные инструкции операндов. Код, написанный для 80386 и выше, может использовать префикс переопределения размера операнда (0x66). Обычно этот префикс используется кодом защищенного и длинного режима с целью использования 16-битных операндов, поскольку этот код будет выполняться в сегменте кода с размером операнда по умолчанию 32 бита. В реальном режиме размер операнда по умолчанию составляет 16 бит, поэтому префикс 0x66 интерпретируется по-другому, изменяя размер операнда на 32 бита.
Диаграмма состояний режимов работы x86-64

Длинный режим [ править ]

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

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

Устаревший режим [ править ]

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

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

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

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

Реальный режим — это начальный режим работы при инициализации процессора и подрежим устаревшего режима. Он обратно совместим с оригинальными процессорами Intel 8086 и Intel 8088 . Реальный режим сегодня в основном используется загрузчиками операционной системы, которые необходимы архитектуре для настройки деталей виртуальной памяти перед переходом в более высокие режимы. Этот режим также используется любой операционной системой, которой необходимо взаимодействовать с микропрограммой системы через традиционный интерфейс в стиле BIOS . [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 (Extended Memory 64 Technology). В конце 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]

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

Реализация VIA x86-64 [ править ]

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

соответствует исходной архитектуре AMD K8 2003 года (за исключением инструкций AMD)

CX8 cmpxchg8b
ФПУ флд
FXSR fxsave
ММХ Эммс
ОСFXSR fxsave
ПКЭ системный вызов
СШЭ cvtss2si
SSE2 cvtpi2pd
v2 CMPXCHG16B cmpxchg16b

Intel Nehalem и новые «большие» ядра Intel
Intel (Atom) Silvermont и более новые «маленькие» ядра Intel
AMD Bulldozer и новые «большие» ядра AMD
AMD Ягуар
ВИА Нано и Эдем «С»

уровень функций соответствует архитектуре Intel Nehalem 2008 года (за исключением инструкций Intel)

ЛАХФ-САХФ лахф
ПОПКНТ попкнт
SSE3 добавитьсубпд
SSE4_1 blendpd
SSE4_2 пкмпестри
СССЭ3 пшуфб
v3 AVX все

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

уровень функций соответствует архитектуре Intel Haswell 2013 года (за исключением инструкций Intel)

AVX2 впермд
ИМТ1 и н
ИМТ2 bzhi
F16C vcvtph2ps
ФМА vfmadd132pd
ЛЗКТ lzcnt
МОВБЕ мовбе
OSXSAVE xgetbv
v4 AVX512F кмовв

Intel Skylake и более новые «большие» ядра Intel (только модели с поддержкой AVX512)
AMD Zen 4 ядра

уровень функций соответствует архитектуре Intel Skylake-X 2017 года (за исключением инструкций Intel)

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.

Старые реализации [ править ]

  • Процессоры 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 с 1993 по 2020 год. [78]

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

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

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

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

БСД [ править ]

DragonFly BSD [ править ]

Предварительные работы по созданию инфраструктуры для порта 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[editNetBSD

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

OpenBSD [ править ]

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

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

ДВА [ править ]

можно Войти в длинный режим под DOS без расширителя DOS, [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 программы) и библиотеки динамической компоновки ( .dlls) использование 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]

См. также [ править ]

Примечания [ править ]

  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] используйте х64. Семейство BSD ОС и несколько дистрибутивов Linux. [7] [8] используйте AMD64, как и Microsoft Windows внутри. [9] [10]
  2. ^ На практике 64-битные операционные системы обычно не поддерживают 16-битные приложения, хотя современные версии Microsoft Windows содержат ограниченный обходной путь, который эффективно поддерживает 16-битные установщики InstallShield и Microsoft ACME путем автоматической замены их 32-битным кодом. [12]
  1. The Register сообщил, что образцы степпинга G1 (0F49h) Pentium 4 будут выпущены 17 октября, а массовые поставки — 14 ноября. [66] Однако в документе Intel говорится, что образцы будут доступны 9 сентября, тогда как 17 октября является «датой первой доступности материалов после преобразования», которую Intel определяет как «проектируемую дату, когда клиент может ожидать получения материалов после преобразования». .... клиенты должны быть готовы получить уже преобразованные материалы в этот день». [67]

Ссылки [ править ]

  1. ^ «Часто задаваемые вопросы по Debian AMD64» . Дебиан Вики . Архивировано из оригинала 26 сентября 2019 года . Проверено 3 мая 2012 г.
  2. ^ Перейти обратно: а б с «Модель кода x86-64» . Яблоко. Архивировано из оригинала 2 июня 2012 года . Проверено 23 ноября 2012 г.
  3. ^ Перейти обратно: а б с arch(1) Darwin и macOS по общим командам Руководство
  4. ^ Перейти обратно: а б с Кевин Ван Вехтен (9 августа 2006 г.). «re: Отчет об ошибке Intel XNU» . Список рассылки Darwin-dev . Компьютер Apple . Архивировано из оригинала 1 февраля 2020 года . Проверено 5 октября 2006 г. Ядро и инструменты разработчика стандартизировали «x86_64» для названия архитектуры Mach-O.
  5. ^ Перейти обратно: а б «Солярис 10 на AMD Opteron» . Оракул. Архивировано из оригинала 25 июля 2017 года . Проверено 9 декабря 2010 г.
  6. ^ Перейти обратно: а б «64-битные вычисления Microsoft» . Майкрософт. Архивировано из оригинала 12 декабря 2010 года . Проверено 9 декабря 2010 г.
  7. ^ «Порт AMD64» . Дебиан. Архивировано из оригинала 26 сентября 2019 года . Проверено 23 ноября 2012 г.
  8. ^ «Проект Gentoo/AMD64» . Проект Генту. Архивировано из оригинала 3 июня 2013 года . Проверено 27 мая 2013 г.
  9. ^ «Детали реализации WOW64» . Архивировано из оригинала 13 апреля 2018 года . Проверено 24 января 2016 г.
  10. ^ «Класс ProcessorArchitecture» . Архивировано из оригинала 3 июня 2017 года . Проверено 24 января 2016 г.
  11. ^ Перейти обратно: а б с д Это ж г час я дж к л м н О п д р с т в Корпорация AMD (декабрь 2016 г.). «Том 2: Системное программирование» (PDF) . Руководство программиста по архитектуре AMD64 . Корпорация АМД. Архивировано (PDF) из оригинала 13 июля 2018 г. Проверено 25 марта 2017 г.
  12. ^ Раймонд Чен (31 октября 2013 г.). «Если в 64-битной Windows нет 16-битного слоя эмуляции, почему разрешен запуск некоторых 16-битных установщиков?» . Архивировано из оригинала 14 июля 2021 года . Проверено 14 июля 2021 г.
  13. ^ «Раскрытие тайны о 64-битной производительности IBM WebSphere Application Server» (PDF) . Корпорация IBM. 6 сентября 2007 г. с. 14. Архивировано (PDF) оригинала 25 января 2022 г. Проверено 9 апреля 2010 г. На рисунках 5, 6 и 7 также показано, что 32-разрядная версия WAS запускает приложения с полной аппаратной производительностью на платформах POWER и x86-64. В отличие от некоторых 64-битных процессорных архитектур аппаратное обеспечение POWER и x86-64 не эмулирует 32-битный режим. Поэтому приложения, которые не используют 64-битные функции, могут работать с полной производительностью на 32-битной версии WebSphere, работающей на вышеупомянутых 64-битных платформах.
  14. ^ «AMD раскрывает новые технологии на форуме Microporcessor» (пресс-релиз). АМД. 5 октября 1999 года. Архивировано из оригинала 8 марта 2012 года . Проверено 9 ноября 2010 г.
  15. ^ «AMD выпускает архитектурную спецификацию x86-64; обеспечивает рыночный переход на 64-битные вычисления» (пресс-релиз). АМД. 10 августа 2000 года. Архивировано из оригинала 8 марта 2012 года . Проверено 9 ноября 2010 г.
  16. ^ Руководство программиста по архитектуре AMD64 (PDF) . п. 1.
  17. ^ Мауэрер, В. (2010). Профессиональная архитектура ядра Linux. Джон Уайли и сыновья.
  18. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 3A: Руководство по системному программированию, часть 1» (PDF) . стр. 4–7. Архивировано (PDF) из оригинала 16 мая 2011 г. Проверено 10 июля 2019 г.
  19. ^ Перейти обратно: а б «Руководство разработчика BIOS и ядра (BKDG) для процессоров семейства AMD 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. ^ Корпорация Майкрософт. «Что такое PAE, NX и SSE2 и почему мой компьютер должен их поддерживать для запуска Windows 8?» . Архивировано из оригинала 11 апреля 2013 года . Проверено 19 марта 2013 г.
  23. ^ Перейти обратно: а б с д «Ограничения памяти для выпусков Windows» . MSDN . Майкрософт . 16 ноября 2013. Архивировано из оригинала 6 января 2014 года . Проверено 20 января 2014 г.
  24. ^ «5-уровневый пейджинг и 5-уровневый EPT» (PDF) . Интел. Май 2017 г. Архивировано (PDF) из оригинала 5 декабря 2018 г. . Проверено 17 июня 2017 г.
  25. ^ Патент США 9858198 , Ларри Зейлер, «Система страниц 64 КБ, поддерживающая операции со страницами 4 КБ», опубликован 29 декабря 2016 г., выдан 02 января 2018 г., передан корпорации Intel.  
  26. ^ «Материнские платы серии Opteron 6100» . Корпорация Супермикро. Архивировано из оригинала 3 июня 2010 года . Проверено 22 июня 2010 г.
  27. ^ «Супермикро XeonSolutions» . Корпорация Супермикро. Архивировано из оригинала 27 мая 2010 года . Проверено 20 июня 2010 г.
  28. ^ «Материнские платы серии Opteron 8000» . Корпорация Супермикро. Архивировано из оригинала 27 мая 2010 года . Проверено 20 июня 2010 г.
  29. ^ «Матрица продуктов Тян» . Международная корпорация МиТЕК. Архивировано из оригинала 6 июня 2010 года . Проверено 21 июня 2010 г.
  30. ^ Перейти обратно: а б «Из архива AMI: AMIBIOS 8 и переход на EFI» . Американские мегатренды . 8 сентября 2017 года. Архивировано из оригинала 25 октября 2021 года . Проверено 25 октября 2021 г.
  31. ^ «Intel продолжает проект Ямхилл?» . Неовин . Архивировано из оригинала 5 июня 2022 года . Проверено 5 июня 2022 г.
  32. ^ «Крейг Барретт подтверждает 64-битные расширения адресов для Xeon. И Прескотт» . Спрашивающий. 17 февраля 2004 года. Архивировано из оригинала 12 января 2013 года . Проверено 20 августа 2017 г.
  33. ^ « Обзор 64-битных вычислений», с сайта Internetnews.com» . Архивировано из оригинала 25 сентября 2012 года . Проверено 18 сентября 2006 г.
  34. ^ Лапедус, Марк (6 февраля 2004 г.). «Intel продемонстрирует линейку 64-битных процессоров CT на IDF» . ЭДН . АспенКор Медиа. Архивировано из оригинала 25 мая 2021 года . Проверено 25 мая 2021 г.
  35. ^ «Архитектура Intel 64» . Интел . Архивировано из оригинала 29 июня 2011 года . Проверено 29 июня 2007 г.
  36. ^ «Intel публикует спецификацию X86-S только для 64-битной архитектуры» . www.phoronix.com .
  37. ^ Перейти обратно: а б «Представление упрощенной архитектуры Intel будущего» . Интел .
  38. ^ «VIA выпустит новую процессорную архитектуру в 1К08» (требуется подписка) . ДиджиТаймс . 25 июля 2007. Архивировано из оригинала 3 декабря 2008 года . Проверено 25 июля 2007 г.
  39. ^ Стоукс, Джон (23 января 2008 г.). «Исайя раскрыл: новую архитектуру VIA с низким энергопотреблением» . Арс Техника. Архивировано из оригинала 27 января 2008 года . Проверено 24 января 2008 г.
  40. ^ «VIA представляет семейство процессоров VIA Nano» (пресс-релиз). С ПОМОЩЬЮ . 29 мая 2008 г. Архивировано из оригинала 3 февраля 2019 г. Проверено 25 мая 2017 г.
  41. ^ «Введение в архитектуру VIA Isaiah» (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. ^ «Низкоуровневая системная информация о двоичном интерфейсе приложения System V» . Репозиторий x86-64 psABI . 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, том 2 (2A, 2B и 2C): Справочник по набору команд, A–Z» (PDF) . Интел. Сентябрь 2013. стр. 4–397. Архивировано (PDF) из оригинала 20 октября 2013 г. Проверено 21 января 2014 г.
  50. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2 (2A, 2B и 2C): Справочник по набору команд, Аризона» (PDF) . Интел. Сентябрь 2013. стр. 4–400. Архивировано (PDF) из оригинала 20 октября 2013 г. Проверено 21 января 2014 г.
  51. ^ «Как отказ от сегментации в длинном режиме AMD64 сломал VMware» . Pagetable.com. 9 ноября 2006 года. Архивировано из оригинала 18 июля 2011 года . Проверено 2 мая 2010 г.
  52. ^ «Технология виртуализации VMware и ЦП» (PDF) . VMware. Архивировано (PDF) из оригинала 17 июля 2011 г. Проверено 8 сентября 2010 г.
  53. ^ «Архив Linux-Kernel: [ИСПРАВЛЕНИЕ 2/5] KVM: svm: запретить EFER.LMSLE на оборудовании, которое его не поддерживает» . lkml.indiana.edu . Проверено 3 ноября 2023 г.
  54. ^ «Руководство программиста по архитектуре AMD64, том 3: универсальные и системные инструкции» (PDF) . АМД. Май 2018. с. 419. Архивировано (PDF) из оригинала 20 августа 2018 г. . Проверено 2 августа 2018 г.
  55. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2 (2A, 2B и 2C): Справочник по набору команд, Аризона» (PDF) . Интел. Сентябрь 2014 г., стр. 4–412. Архивировано (PDF) из оригинала 13 января 2015 г. Проверено 28 декабря 2014 г.
  56. Хади Брейс, Значение инструкции LFENCE для x86 , 14 мая 2018 г. Архивировано 10 июня 2023 г.
  57. ^ "Live Migration with AMD-V™ Extended Migration Technology" (PDF). developer.amd.com. Archived (PDF) from the original on December 6, 2022. Retrieved June 30, 2022.
  58. ^ Maged M. Michael. "Practical Lock-Free and Wait-Free LL/SC/VL Implementations Using 64-Bit CAS" (PDF). IBM. Archived (PDF) from the original on May 2, 2013. Retrieved January 21, 2014.
  59. ^ darwou (August 20, 2004). "Why is the virtual address space 4GB anyway?". The Old New Thing. Microsoft. Archived from the original on March 26, 2017. Retrieved March 25, 2017.
  60. ^ Jump up to: a b "System Requirements—Windows 8.1". Archived from the original on April 28, 2014. Retrieved April 27, 2014. To install a 64-bit OS on a 64-bit PC, your processor needs to support CMPXCHG16b, PrefetchW, and LAHF/SAHF.
  61. ^ Petkov, Borislav (August 10, 2009). "Re: [PATCH v2] x86: clear incorrectly forced X86_FEATURE_LAHF_LM flag". Linux kernel mailing list. Archived from the original on January 11, 2023. Retrieved June 30, 2022.
  62. ^ "Revision Guide for AMD Athlon 64 and AMD Opteron Processors" (PDF). AMD. Archived (PDF) from the original on August 24, 2009. Retrieved July 18, 2009.
  63. ^ "Product Change Notification 105224 - 01" (PDF). Intel. Archived from the original (PDF) on November 17, 2005.
  64. ^ «Процессор Intel® Pentium® D серии 800 и обновление спецификации процессора Intel® Pentium® Extreme Edition 840» (PDF) . Архивировано (PDF) оригинала 18 мая 2021 г. Проверено 30 июня 2022 г.
  65. ^ «Intel Xeon 2,8 ГГц — NE80551KG0724MM/BX80551KG2800HA» . CPU-Мир . Архивировано из оригинала 28 июня 2020 года . Проверено 30 июня 2022 г.
  66. ^ Смит, Тони (23 августа 2005 г.). «Intel настраивает EM64T для полной совместимости с AMD64» . Регистр . Архивировано из оригинала 30 июня 2022 года . Проверено 30 июня 2022 г.
  67. ^ «Уведомление об изменении продукта 105271 – 00» (PDF) . Интел. Архивировано из оригинала (PDF) 17 ноября 2005 г.
  68. ^ 0F47h ​​дебютировал в степпинге B0 Pentium D 21 октября. [63] [64] но 0F48h, который также поддерживает LAHF/SAHF, был выпущен 10 октября в двухъядерном процессоре Xeon . [65] [а]
  69. ^ «Уведомление об изменении продукта 104101 – 00» (PDF) . Интел. Архивировано из оригинала (PDF) 16 июля 2004 г.
  70. ^ «Технические данные 64-разрядного процессора Intel® Xeon™ MP с кэшем L3 объемом до 8 МБ» (PDF) . Архивировано (PDF) из оригинала 17 ноября 2022 г. Проверено 17 ноября 2022 г.
  71. ^ «Джастин Боггс на Microsoft PDC 2008» . п. 5. Архивировано из оригинала 17 ноября 2022 года . Проверено 17 ноября 2022 г.
  72. ^ Уолдекер, Брайан. «Многоядерные процессоры AMD Opteron» (PDF) . п. 13. Архивировано (PDF) из оригинала 13 декабря 2022 г. Проверено 17 ноября 2022 г.
  73. ^ «Техническое описание процессора Intel® Xeon® серии 7500, том 2» (PDF) . Архивировано (PDF) из оригинала 17 ноября 2022 г. Проверено 17 ноября 2022 г.
  74. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32» . Сентябрь 2014. с. 2-21. Архивировано из оригинала 14 мая 2019 г. Архитектура Intel 64 увеличивает линейное адресное пространство для программного обеспечения до 64 бит и поддерживает физическое адресное пространство до 46 бит.
  75. ^ Логан, Том (14 ноября 2011 г.). «Обзор Intel Core i7-3960X» . Архивировано из оригинала 28 марта 2016 года . Проверено 1 июля 2022 г.
  76. ^ Да, Хуайшэн. «Введение в 5-уровневую подкачку страниц в масштабируемых процессорах Intel Xeon 3-го поколения с Linux» (PDF) . Леново. Архивировано (PDF) из оригинала 26 мая 2022 г. Проверено 1 июля 2022 г.
  77. ^ Кеннеди, Патрик (10 ноября 2022 г.). «AMD EPYC Genoa превосходит Intel Xeon в потрясающем стиле» . Сервис TheHome . п. 2. Архивировано из оригинала 17 ноября 2022 года . Проверено 17 ноября 2022 г.
  78. ^ «Статистика | ТОП500 суперкомпьютерных сайтов» . Топ500.org. Архивировано из оригинала 19 марта 2014 года . Проверено 22 марта 2014 г.
  79. ^ «Генератор подсписков | ТОП500 суперкомпьютерных сайтов» . www.top500.org . Архивировано из оригинала 7 декабря 2018 года . Проверено 6 декабря 2018 г.
  80. ^ «Справочное руководство по архитектуре набора команд сопроцессора Intel® Xeon PhiTM» (PDF) . Интел. 7 сентября 2012 г. раздел B.2 Ограничения 64-разрядного режима сопроцессора Intel Xeon Phi. Архивировано (PDF) из оригинала 21 мая 2014 г. Проверено 21 мая 2014 г.
  81. ^ «Intel обеспечивает работу самого быстрого в мире суперкомпьютера и раскрывает новые и будущие высокопроизводительные вычислительные технологии» . Архивировано из оригинала 22 июня 2013 года . Проверено 21 июня 2013 г.
  82. ^ "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 г.
  83. ^ «Порт AMD64» . Архивировано из оригинала 18 мая 2010 года . Проверено 3 мая 2009 г.
  84. ^ «DragonFlyBSD: GoogleSoC2008» . Архивировано из оригинала 27 апреля 2009 года . Проверено 3 мая 2009 г.
  85. ^ «Летом Кодекса принимаются студенты» . Архивировано из оригинала 4 сентября 2010 года . Проверено 3 мая 2009 г.
  86. ^ «DragonFlyBSD: выпуск 24» . Архивировано из оригинала 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» . 23 апреля 2012. Архивировано из оригинала 14 мая 2012 года . Проверено 11 мая 2012 г. Вы можете использовать пакеты multilib или chroot i686.
  91. ^ Перейти обратно: а б Торстен Лемхейс (13 сентября 2011 г.). «Журнал ядра: x32 ABI устраняет недостатки 64-битной системы» . www.h-online.com. Архивировано из оригинала 28 октября 2011 года . Проверено 1 ноября 2011 г.
  92. ^ Перейти обратно: а б «x32 — собственный 32-битный ABI для x86-64» . linuxplumbersconf.org. Архивировано из оригинала 5 мая 2012 года . Проверено 1 ноября 2011 г.
  93. ^ Перейти обратно: а б "x32-аби" . Сайты Google. Архивировано из оригинала 30 октября 2011 года . Проверено 1 ноября 2011 г.
  94. ^ «Порт AMD64» . debian.org. Архивировано из оригинала 26 сентября 2019 года . Проверено 29 октября 2011 г.
  95. ^ «5-уровневый пейджинг» . ядро.орг . Проверено 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: обзор Ars Technica» . ООО «Арс Техника». Архивировано из оригинала 9 октября 2009 года . Проверено 20 июня 2010 г.
  100. ^ «Технология Mac OS X» . Apple Inc. Архивировано из оригинала 28 марта 2011 года . Проверено 19 ноября 2012 г.
  101. ^ Шмид, Дж; Томасес, К; Рэми, Дж; Чекалла, У; Матье, Б; Абхирам, Р. (10 сентября 2019 г.). «Итак, у нас нет решения для Каталины... пока» . Блог CodeWeavers . Архивировано из оригинала 29 сентября 2021 года . Проверено 29 сентября 2021 г.
  102. ^ Томасес, Кен (11 декабря 2019 г.). «win32 на macOS» . Винный штаб-квартира . Архивировано из оригинала 11 ноября 2020 года . Проверено 29 сентября 2021 г.
  103. ^ «Microsoft повышает ограничение скорости с появлением 64-разрядных выпусков Windows Server 2003 и Windows XP Professional» . Центр новостей Microsoft (пресс-релиз). 25 апреля 2005 года . Проверено 29 января 2024 г.
  104. ^ «Описание 64-разрядных версий Windows Server 2003 и Windows XP Professional x64 Edition» . Поддержка Майкрософт . Архивировано из оригинала 20 апреля 2016 года . Проверено 14 августа 2016 г.
  105. ^ «Пакет средств администрирования Windows Server 2003 SP1» . Центр загрузки Microsoft . Архивировано из оригинала 27 августа 2016 года . Проверено 14 августа 2016 г.
  106. ^ Перейти обратно: а б «/LARGEADDRESSAWARE (обработка больших адресов)» . Документация по Visual Studio 2022 — Справочник по компоновщику MSVC — Параметры компоновщика MSVC . Майкрософт. Архивировано из оригинала 21 декабря 2022 года . Проверено 21 декабря 2022 г. Параметр /LARGEADDRESSAWARE сообщает компоновщику, что приложение может обрабатывать адреса размером более 2 гигабайт.
  107. ^ Перейти обратно: а б с Мэтт Питрек (май 2006 г.). «Все, что вам нужно знать, чтобы начать программировать 64-битные системы Windows» . Майкрософт . Проверено 18 апреля 2023 г.
  108. ^ Крис Сент-Аманд (январь 2006 г.). «Переход на x64» . Майкрософт . Проверено 18 апреля 2023 г.
  109. ^ «За пределом адресации 44-битной виртуальной памяти Windows x86-64» . Архивировано из оригинала 23 декабря 2008 года . Проверено 2 июля 2009 г.
  110. ^ Перейти обратно: а б «64-битное программирование для разработчиков игр» . Проверено 18 апреля 2023 г.
  111. ^ «Ограничения памяти для выпусков Windows и Windows Server» . Майкрософт . Проверено 18 апреля 2023 г.
  112. ^ Кингсли-Хьюз, Адриан (23 августа 2010 г.). «AMD прощается с набором инструкций 3DNow!» . ЗДНет . Архивировано из оригинала 8 января 2023 года . Проверено 8 января 2023 г.
  113. ^ «Общие рекомендации по портированию» . Руководство по программированию для 64-битной Windows. Документы Майкрософт . Проверено 18 апреля 2023 г.
  114. ^ «История драйверов для Microsoft SQL Server» . Документы Майкрософт . Проверено 18 апреля 2023 г.
  115. ^ «Поставщик Microsoft OLE DB для Jet и драйвер ODBC Jet доступны только в 32-разрядных версиях» . Доступ в офис. Документы Майкрософт . КБ957570 . Проверено 18 апреля 2023 г.
  116. ^ Ананд Лал Шимпи (21 мая 2013 г.). «Xbox One: анализ оборудования и сравнение с PlayStation 4» . Анандтех. Архивировано из оригинала 7 июня 2013 года . Проверено 22 мая 2013 г.
  117. ^ «Тест технических характеристик: Xbox One против PlayStation 4» . Игровой информер. 21 мая 2013. Архивировано из оригинала 7 июня 2013 года . Проверено 22 мая 2013 г.
  118. ^ «Чего ожидать от запуска Sony PlayStation 5 в ноябре» . Индийский экспресс . 31 августа 2020 года. Архивировано из оригинала 19 сентября 2020 года . Проверено 14 сентября 2020 г.
  119. ^ Катресс, доктор Ян. «Живой блог Hot Chips 2020: системная архитектура Microsoft Xbox Series X (18:00 по тихоокеанскому времени)» . www.anandtech.com . Архивировано из оригинала 17 сентября 2020 года . Проверено 14 сентября 2020 г.
  120. ^ Холлистер, Шон (12 ноября 2021 г.). «Steam Deck: пять важных вещей, которые мы узнали на саммите разработчиков Valve» . Грань . Архивировано из оригинала 7 февраля 2022 года . Проверено 12 ноября 2021 г.
  121. ^ "ProcessorArchitecture Fields". Archived from the original on April 28, 2015. Retrieved September 4, 2013.
  122. ^ "An example file from Linux 3.7.8 kernel source tree displaying the usage of the term x86_64". Archived from the original on September 23, 2005. Retrieved February 17, 2013.
  123. ^ US 6877084 
  124. ^ US 6889312 
  125. ^ US 6732258 
  126. ^ "Patent Cross License Agreement Between AMD and Intel". January 1, 2001. Archived from the original on June 21, 2007. Retrieved August 23, 2009.
  127. ^ "AMD Intel Settlement Agreement". Archived from the original on July 7, 2017. Retrieved September 18, 2017.
  128. ^ Stephen Shankland and Jonathan E. Skillings (November 12, 2009). "Intel to pay AMD $1.25 billion in antitrust settlement". CNET. Archived from the original on November 8, 2012. Retrieved April 24, 2012.
  129. ^ Smith, Ryan (November 12, 2009). "AMD and Intel Settle Their Differences: AMD Gets To Go Fabless". AnandTech. Archived from the original on May 13, 2010.

External links[edit]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 912D792E4F7A9AF0A1CAC156468E52A9__1716917940
URL1:https://en.wikipedia.org/wiki/X86-64
Заголовок, (Title) документа по адресу, URL1:
x86-64 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)