x86-64

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Шаблон:Архитектура CPU x86-64 — аппаратная платформа (аппаратно-программный комплекс вычислительной системы), реализующая 64-битовое расширение набора команд для 32-разрядной архитектуры x86. Позволяет работать с 64-разрядными программными приложениями, обладает практически полной обратной совместимостью. Автором технологии является компания AMD[1].

Компании Microsoft и Oracle применяют название «x64», однако, в каталоге файлов для 64-разрядных версий Microsoft Windows он известен как «amd64» (в то время как для архитектуры x86 используется название «i386»). Подобная практика также применяется в репозиториях (от англ. repository — хранилище) многих дистрибутивов (форма распространения программного обеспечения) Linux. Наборы инструкций AMD64 и Intel 64 практически идентичны.

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

AMD Opteron, первый процессор, работающий в режиме расширения архитектуры x86-64

AMD64 (также именуемая AMD в своей литературе и документации как «64-разрядная технология AMD» и «Архитектура AMD x86-64») была создана как альтернатива 64-разрядной архитектуре IA-64, разработанной Intel и Hewlett-Packard, которая была обратно несовместима с 32-разрядной версией архитектуры x86.

AMD первоначально анонсировала AMD64 в 1999 году с полной спецификацией, доступной в августе 2000 года. Архитектура AMD64 с самого начала позиционировалась как эволюционный способ добавления 64-разрядных вычислительных возможностей к существующей архитектуре x86 при поддержке устаревшего 32-разрядного кода для x86, в отличие от подхода Intel к созданию совершенно новой, несовместимой с x86 64-разрядной архитектуры IA -64[2].

Первый процессор на базе AMD64 был выпущен в апреле 2003 года, далее список пополнился следующими моделями:

  • Opteron, Athlon 64, Athlon 64 X2, Athlon 64 FX, Athlon II (за которыми следуют «X2», «X3» или «X4» для обозначения количества ядер и моделей XLT).
  • Turion 64, Turion 64 X2.
  • Sempron («Palermo» E6 stepping и все модели «Manila»).
  • Phenom (за которыми следуют «X3» или «X4» для обозначения количества ядер), Phenom II (за которым следуют «X2», «X3», «X4» для обозначения количества ядер).
  • FX, Fusion/APU и Ryzen/EPYC.

Позже платформу x86-64 стали поддерживать следующие компании:

  • Intel Corporation реализует данную платформу на процессорах:
    • Pentium (Pentium Dual-Core, Pentium T-серии, Pentium P-серии, Pentium G-серии, Pentium B-серии);
    • Intel Movidius, Intel Xeon и Intel Max Series
    • Celeron;
    • Core
    • Intel Atom и Xeon (линейка серверных микропроцессоров производства Intel);
  • VIA Technologies реализует платформу на процессорах Nano, Eden, QuadCore.

Архитектурные особенности. Режимы адресации[править]

x86-64 относится к типу CISC (англ. complex instruction set computing — компьютер с комплексным набором команд). Является практически единственной современной CISC-архитектурой. Другие популярные архитектуры строятся по принципу RISC (англ. reduced instruction set computer — компьютер с сокращённым набором команд). Термин «сокращённый» в названии описывает тот факт, что сокращён объём (и время) работы, выполняемый каждой отдельной машинной командой — как максимум один цикл доступа к памяти, тогда как сложные инструкции CISC-процессоров могут требовать многих циклов доступа к памяти для своего выполнения[3].

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

Дополнительные регистры[править]

В дополнение к увеличению размера регистров общего назначения, их количество увеличено с 8 до 16. Таким образом, можно хранить больше локальных переменных в регистрах, а не в стеке, и позволять регистрам хранить часто используемые константы. Несмотря на то, что у AMD64 меньше регистров, чем у многих наборов команд RISC, его архитектура позволяет иметь больше внутренних регистров.

При этом современные х86-процессоры, хотя и CISC-совместимы, являются процессорами с RISC-ядром, и в формальном смысле считаются гибридными. В таких гибридных CISC-процессорах CISC-инструкции преобразовываются в набор внутренних RISC-команд, при этом одна команда x86 может порождать несколько RISC-команд, исполнение команд происходит на суперскалярном конвейере одновременно по несколько штук. Небольшие инструкции можно выполнять одновременно[4].

Инструкции кодируются последовательностью байт переменной длины, на практике от 1 до 15 байт.

Режимы адресации[править]

Режимы адресации в 64-разрядном режиме аналогичны, но не идентичны x86:

  • инструкции, относящиеся к 64-разрядным регистрам, автоматически выполняются с 64-разрядной точностью;
  • для 64-разрядных непосредственных констант или постоянных адресов добавлена специальная форма инструкции mov. Для всех других инструкций непосредственные константы или постоянные адреса по-прежнему имеют 32 бита;
  • x64 предоставляет новый режим относительной адресации RIP (англ. relative instruction-pointer). Инструкции, относящиеся к одному постоянному адресу, кодируются как смещения от RIP[5].

Режимы работы[править]

Имеются два режима работы данной архитектуры[6]:

Схематичное представление работы микропроцессоров
  • Long mode («длинный» режим) — режим, в котором 64-разрядная операционная система (ОС) получает доступ к 64-разрядным командам и регистрам. Для использования этого режима необходима любая 64-битная операционная система (Windows, Linux или какая-то ещё).

Этот режим позволяет выполнять 64-битовые программные приложения. Также, для обратной совместимости, предусмотрена поддержка выполнения 32-битового кода, включая 32-битные приложения. Однако при запуске 32-битовых программ в 64-разрядной системе они не смогут использовать 64-битовые системные библиотеки и наоборот. Для решения этой задачи большинство 64-разрядных операционных систем предоставляет два набора необходимых системных файлов (для родных 64-битовых приложений и для их 32-битовых версий). Этот подход аналогичен методике, использовавшейся в ранних 32-разрядных системах, таких как Windows 95 и Windows NT, для выполнения 16-битовых программ.

  • Legacy mode («наследственный»). Этот режим зовется «наследственным» по той причине, что дает возможность процессору AMD64 работать с инструкциями, которые рассчитаны для x86-процессоров. Кроме того, в рамках активации данного режима осуществляется полная совместимость с 32-битным кодом и соответствующими ОС.

Процессор в «наследственном» режиме работает точно так же, как стандартный x86-процессор. Дополнительные функции, доступные под архитектурой AMD64, становятся неактивны.

При активации данного режима 64-разрядные операционные системы и 64-битовые программные приложения работать не будут.

Структура таблицы страниц[править]

Дополнительное определение: современные процессоры используют концепции физической памяти и виртуальной памяти. Таблица страниц — это структура данных, используемая системой виртуальной памяти в операционной системе компьютера для хранения сопоставления между виртуальным адресом и физическим адресом[7].

Вместо двухуровневой системы таблиц страниц, используемой системами с 32-битовой архитектурой x86, системы, работающие в «длинном» режиме, используют четыре уровня таблицы страниц.

X86 Paging 64bit.svg

Возможные размеры страниц:

  • 4 KB (212 байт) — наиболее часто используется (как и в x86)
  • 2 MB (221 байт)
  • 1 GB (230 байт)

Операционные системы, поддерживаемые платформой х86-64[править]

Ниже приведён перечень некоторых ОС, которые работают на платформе х86-64:

Архитектура x86S[править]

Начиная с 2023 года компания Intel представила упрощённую процессорную архитектуру x86S (x86 Simplification), реализующую только 64-разрядный режим и избавленную от поддержки устаревших концепций. Несмотря на то, что непосредственная поддержка 16- и 32-разрядных операционных систем в x86S прекращена, их можно будет запускать при помощи виртуализации. Возможность запуска 32-разрядных приложений в окружении 64-разрядной ОС сохранится.

Процессоры с новой архитектурой будут запускаться сразу в 64-разрядном режиме, минуя промежуточные переключения в 16- и 32-разрядные режимы в процессе инициализации. В x86S также реализована возможность переключения на использование 5-уровневой структуры таблицы страниц памяти, без предварительного отключения страничной адресации и минуя переход в бесстраничный режим[8].

Литература[править]

Дорот, Вячеслав Леонидович Толковый словарь современной компьютерной лексики. — 3-е изд. — СПб: БХВ-Петербург, 2004. — 608 с. — ISBN 5-94-157491-6.

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

  1. AMD Releases x86-64™ Architectural Specification; Enables Market Driven Migration to 64-Bit Computing
  2. 64-битные x86 процессоры. Краткая историческая справка (2013-12-05). Проверено 5 сентября 2024.
  3. Sivarama P. Dandamudi Guide to RISC Processors. RISC Principles. — New York: Springer, 2005. — С. 39—44. — ISBN 978-0-387-21017-9.
  4. Виды популярных архитектур процессоров (2018-07-16). Проверено 4 сентября 2024.
  5. Евгений Попов Код, независимый от позиции (2023-09-29). Проверено 5 сентября 2024.
  6. x86-64. ООО "Альтербит". Проверено 5 сентября 2024.
  7. Виртуальная память. Архитектурные средства поддержки виртуальной памяти. НОУ «ИНТУИТ». Проверено 5 сентября 2024.
  8. Intel развивает упрощённую архитектуру x86S, работающую только в 64-разрядном режиме (2023-05-20). Проверено 14 сентября 2024.

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

Операционные системы на базе набора команд х86-64

 
Технологии цифровых процессоров
Архитектура

CISC · EDGE · EPIC · MISC · NISC · URISC · RISC · VLIW · ZISC · Фон Неймана · Гарвардская
8 бит  · 16 бит · 32 бит · 64 бит · 128 бит · 256 бит · 512 бит · Dataflow architecture

Параллелизм
Реализации

DSP · GPU · SoC · PPU · Векторный процессор · Математический сопроцессор • Микропроцессор · Микроконтроллер

Компоненты

Barrel shifter · FPU · BSB · MMU · TLB · Регистровый файл · Управляющий автомат · АЛУ • Демультиплексор · Мультиплексор · Микрокод · Тактовая частота • Корпус • Регистры • Кэш (Кэш процессора)

Управление питанием

APM · ACPI · Clock gating · Троттлинг • Динамическое изменение напряжения

Знание.Вики

Одним из источников, использованных при создании данной статьи, является статья из википроекта «Знание.Вики» («znanierussia.ru») под названием «X86-64», расположенная по следующим адресам:

Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC-BY-SA 4.0 и более поздних версий.

Всем участникам Знание.Вики предлагается прочитать материал «Почему Циклопедия?».