x86-64
x86-64 | |
---|---|
Разработчик | AMD |
Разрядность | 32 и/или 64 бита |
Представлена | в 2002 году[1] |
Архитектура | 64-битное расширение для архитектуры x86 |
Кодирование СК | Переменной длины (1..15 байт) |
Реализация переходов | флаги условий |
Порядок байтов | Little-endian |
Размер страницы | в дополнение к страницам, существующим в архитектуре x86, добавлены 1 GiB страницы. |
Открытая? | Для некоторых дополнительных функций x86-64 архитектуры может потребоваться лицензия от AMD. |
Регистры | |
Общего назначения |
Количество РОН при использовании 32-х разрядного режима - 8, при использовании 64-х разрядного режима - 16[2]. |
SIMD |
SSE: 16 x 128 бит, MMX: 8 x 64 бит, AVX-512: 32 x 512 бит[3] |
x86-64 — аппаратная платформа (аппаратно-программный комплекс вычислительной системы), реализующая 64-битовое расширение набора команд для 32-разрядной архитектуры x86. Позволяет работать с 64-разрядными программными приложениями, обладает практически полной обратной совместимостью. Автором технологии является компания AMD[4].
Компании 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[5].
Первый процессор на базе 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-процессоров могут требовать многих циклов доступа к памяти для своего выполнения[6].
Основной определяющей характеристикой AMD64 является наличие 64-разрядных регистров процессора общего назначения (например, rax), позволяющих реализовывать 64-разрядные целочисленные арифметические и логические операции, а также возможность использовать 64-разрядные виртуальные адреса.
Дополнительные регистры
В дополнение к увеличению размера регистров общего назначения, их количество увеличено с 8 до 16. Таким образом, можно хранить больше локальных переменных в регистрах, а не в стеке, и позволять регистрам хранить часто используемые константы. Несмотря на то, что у AMD64 меньше регистров, чем у многих наборов команд RISC, его архитектура позволяет иметь больше внутренних регистров.
При этом современные х86-процессоры, хотя и CISC-совместимы, являются процессорами с RISC-ядром, и в формальном смысле считаются гибридными. В таких гибридных CISC-процессорах CISC-инструкции преобразовываются в набор внутренних RISC-команд, при этом одна команда x86 может порождать несколько RISC-команд, исполнение команд происходит на суперскалярном конвейере одновременно по несколько штук. Небольшие инструкции можно выполнять одновременно[7].
Инструкции кодируются последовательностью байт переменной длины, на практике от 1 до 15 байт.
Режимы адресации
Режимы адресации в 64-разрядном режиме аналогичны, но не идентичны x86:
- инструкции, относящиеся к 64-разрядным регистрам, автоматически выполняются с 64-разрядной точностью;
- для 64-разрядных непосредственных констант или постоянных адресов добавлена специальная форма инструкции mov. Для всех других инструкций непосредственные константы или постоянные адреса по-прежнему имеют 32 бита;
- x64 предоставляет новый режим относительной адресации RIP (англ. relative instruction-pointer). Инструкции, относящиеся к одному постоянному адресу, кодируются как смещения от RIP[8].
Режимы работы
Имеются два режима работы данной архитектуры[9]:
- 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-битовые программные приложения работать не будут.
Структура таблицы страниц
Дополнительное определение: современные процессоры используют концепции физической памяти и виртуальной памяти. Таблица страниц — это структура данных, используемая системой виртуальной памяти в операционной системе компьютера для хранения сопоставления между виртуальным адресом и физическим адресом[10].
Вместо двухуровневой системы таблиц страниц, используемой системами с 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-уровневой структуры таблицы страниц памяти, без предварительного отключения страничной адресации и минуя переход в бесстраничный режим[11].
Литература
Дорот, Вячеслав Леонидович. Толковый словарь современной компьютерной лексики . — 3-е изд. — СПб.: БХВ-Петербург, 2004. — 608 с. — ISBN 5-94-157491-6.
Примечания
- ↑ 64-битные x86 процессоры . Дата обращения: 3 сентября 2024.
- ↑ Assembly Language Регистры . Дата обращения: 3 сентября 2024.
- ↑ Расширения SSE и AVX/AVX2 (18 октября 2023). Дата обращения: 3 сентября 2024.
- ↑ AMD Releases x86-64™ Architectural Specification; Enables Market Driven Migration to 64-Bit Computing
- ↑ 64-битные x86 процессоры. Краткая историческая справка (5 декабря 2013). Дата обращения: 5 сентября 2024.
- ↑ Sivarama P. Dandamudi. Guide to RISC Processors. RISC Principles. — New York: Springer, 2005. — С. 39—44. — ISBN 978-0-387-21017-9.
- ↑ Виды популярных архитектур процессоров (16 июля 2018). Дата обращения: 4 сентября 2024.
- ↑ Евгений Попов. Код, независимый от позиции (29 сентября 2023). Дата обращения: 5 сентября 2024.
- ↑ x86-64 . ООО "Альтербит". Дата обращения: 5 сентября 2024.
- ↑ Виртуальная память. Архитектурные средства поддержки виртуальной памяти . НОУ «ИНТУИТ». Дата обращения: 5 сентября 2024.
- ↑ Intel развивает упрощённую архитектуру x86S, работающую только в 64-разрядном режиме (20 мая 2023). Дата обращения: 14 сентября 2024.
Ссылки
Операционные системы на базе набора команд х86-64
Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело! |
Данная статья имеет статус «проверенной». Это говорит о том, что статья была проверена экспертом |
- Знание.Вики:Cite web (не указан язык)
- Страницы, использующие волшебные ссылки ISBN
- Знание.Вики:Страницы с модулем Hatnote с красной ссылкой
- Технологии процессоров
- Знание.Вики:Готовые статьи о технологиях
- Знание.Вики:Готовые статьи по истории
- Знание.Вики:Социально-экономическая география
- Знание.Вики:Готовые статьи по алфавиту
- Информационные технологии
- Микропроцессоры
- Расширения архитектуры x86