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 практически идентичны.
История[править]
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, системы, работающие в «длинном» режиме, используют четыре уровня таблицы страниц.
Возможные размеры страниц:
- 4 KB (212 байт) — наиболее часто используется (как и в x86)
- 2 MB (221 байт)
- 1 GB (230 байт)
Операционные системы, поддерживаемые платформой х86-64[править]
Ниже приведён перечень некоторых ОС, которые работают на платформе х86-64:
- Linux — семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU. Первое ядро операционной системы, работающее на архитектуре x86-64 в режиме Long mode;
- MacOS — проприетарная операционная система компании Apple;
- Windows — группа семейств коммерческих проприетарных операционных систем корпорации Microsoft;
- OpenBSD — (англ. Berkeley Software Distribution) — группа операционных систем с открытым исходным кодом;
- OpenVMS — (англ. Open Virtual Memory System) — проприетарная серверная операционная система, разработанная во второй половине 1970-х годов компанией Digital Equipment Corporation для серии компьютеров VAX.
- Solaris — операционная система, разработанная компанией Sun Microsystems для платформы SPARC (англ. Scalable Processor ARChitecture — масштабируемая архитектура процессора).
Архитектура 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.
Примечания[править]
- ↑ AMD Releases x86-64™ Architectural Specification; Enables Market Driven Migration to 64-Bit Computing
- ↑ 64-битные x86 процессоры. Краткая историческая справка (2013-12-05). Проверено 5 сентября 2024.
- ↑ Sivarama P. Dandamudi Guide to RISC Processors. RISC Principles. — New York: Springer, 2005. — С. 39—44. — ISBN 978-0-387-21017-9.
- ↑ Виды популярных архитектур процессоров (2018-07-16). Проверено 4 сентября 2024.
- ↑ Евгений Попов Код, независимый от позиции (2023-09-29). Проверено 5 сентября 2024.
- ↑ x86-64. ООО "Альтербит". Проверено 5 сентября 2024.
- ↑ Виртуальная память. Архитектурные средства поддержки виртуальной памяти. НОУ «ИНТУИТ». Проверено 5 сентября 2024.
- ↑ Intel развивает упрощённую архитектуру x86S, работающую только в 64-разрядном режиме (2023-05-20). Проверено 14 сентября 2024.
Ссылки[править]
Операционные системы на базе набора команд х86-64
![]() Технологии цифровых процессоров ↑ [+] | |
---|---|
Архитектура |
CISC · EDGE · EPIC · MISC · NISC · URISC · RISC · VLIW · ZISC · Фон Неймана · Гарвардская |
Параллелизм |
|
Реализации |
DSP · GPU · SoC · PPU · Векторный процессор · Математический сопроцессор • Микропроцессор · Микроконтроллер |
Компоненты |
Barrel shifter · FPU · BSB · MMU · TLB · Регистровый файл · Управляющий автомат · АЛУ • Демультиплексор · Мультиплексор · Микрокод · Тактовая частота • Корпус • Регистры • Кэш (Кэш процессора) |
Управление питанием |
APM · ACPI · Clock gating · Троттлинг • Динамическое изменение напряжения |
![]() | Одним из источников, использованных при создании данной статьи, является статья из википроекта «Знание.Вики» («znanierussia.ru») под названием «X86-64», расположенная по следующим адресам:
Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC-BY-SA 4.0 и более поздних версий. Всем участникам Знание.Вики предлагается прочитать материал «Почему Циклопедия?». |
---|