Архитектуры х64 и х86 являются одними из наиболее широко используемых типов архитектур системы команд (АСК или ISA – Instruction Set Architecture), созданными Intel и AMD. ISA определяет поведение машинного кода и то, как программное обеспечение управляет процессором.
ISA – это аппаратный и программный интерфейс, определяющий, что и как может делать ЦП.
Прочитав эту статью, вы узнаете разницу между архитектурами х64 и х86.
Что из себя представляет архитектура х86?
х86 – это тип ISA для компьютерных процессоров, разработанный Intel в 1978 году. Архитектура х86 основана на микропроцессоре Intel 8086 (отсюда и название) и его модификации 8088. Изначально это была 16-битная система команд для 16-битных процессоров, а позже она выросла до 32-битной системы команд.
Количество битов показывает, сколько информации ЦП может обработать за цикл. Так, например, 32-разрядный ЦП передает 32 бита данных за тактовый цикл.
Благодаря своей способности работать практически на любом компьютере, от обычных ноутбуков до домашних ПК и серверов, архитектура х86 стала достаточно популярной среди многих производителей микропроцессоров.
Наиболее значительным ограничением архитектуры х86 является то, то она может обрабатывать максимум 4096 Мб ОЗУ. Поскольку общее количество поддерживаемых комбинаций равно 232 (4 294 967 295), то 32-разрядный процессор имеет 4,29 миллиарда ячеек памяти. В каждой ячейке хранится 1 байт данных, а в сумме это примерно 4 Гб доступной памяти.
На сегодняшний день термин х86 обозначает любой 32-разрядный процессор, способный выполнять систему команд х86.
Что из себя представляет архитектура х64?
х64 (сокращение от х86-64) – это архитектура системы команд, расширенная до 64-битного кода. В ее основе лежит архитектура х86. Впервые она была выпущена в 2000 году. Она представляла два режима работы – 64-битный режим и режим совместимости, который позволяет пользователям запускать 16-битные и 32-битные приложения.
Поскольку вся система команд х86 остается в х64, то старые исполняемые файлы работают практически без потери производительности.
Архитектура х64 поддерживает гораздо больший объем виртуальной и физической памяти, чем архитектура х86. Это позволяет приложениям хранить в памяти большие объемы данных. Кроме того, х64 увеличивает количество регистров общего назначения до 16, обеспечивая тем самым дополнительную оптимизацию использования и функциональность.
Архитектура х64 может использовать в общей сложности 264 байта, что соответствует 16 миллиардам гигабайт (16 эксабайт) памяти. Гораздо большее использование ресурсов делает эту архитектуру пригодной для обеспечения работы суперкомпьютеров и машин, которым требуется доступ к огромным ресурсам.
Архитектура х64 позволяет ЦР обрабатывать 64 бита данных за тактовый цикл, что намного больше, чем может себе позволить архитектура х86.
х86 VS х64
Несмотря на то, что оба эти типа архитектуры основаны на 32-битной системе команд, некоторые ключевые отличия позволяют их использовать для разных целей. Основное различие между ними заключается в количестве данных, которые они могут обрабатывать за каждый тактовый цикл, и в ширине регистра процессора.
Процессор сохраняет часто используемые данные в регистре для быстрого доступа. 32-разрядный процессор на архитектуре х86 имеет 32-битные регистры, а 64-разрядный процессор – 64-битные регистры. Таким образом, х64 позволяет ЦП хранить больше данных и быстрее к ним обращаться. Ширина регистра также определяет объем памяти, который может использовать компьютер.
В таблице ниже продемонстрированы основные различия между системами команд архитектур х86 и х64.
ISA |
х86 |
х64 |
Выпущена |
Выпущена в 1978 году |
Выпущена в 2000 году |
Создатель |
Intel |
AMD |
Основа |
Основана на процессоре Intel 8086 |
Создана как расширение архитектуры х86 |
Количество бит |
32-битная архитектура |
64-битная архитектура |
Адресное пространство |
4 ГБ |
16 ЭБ |
Лимит ОЗУ |
4 ГБ (фактически доступно 3,2 ГБ) |
16 миллиардов ГБ |
Скорость |
Медленная и менее мощная в сравнении с х64 |
Позволяет быстро обрабатывать большие наборы целых чисел; быстрее, чем х86 |
Передача данных |
Поддерживает параллельную передачу только 32 бит через 32-битную шину за один заход |
Поддерживает параллельную передачу больших фрагментов данных через 64-битную шину данных |
Хранилище |
Использует больше регистров для разделения и хранения данных |
Хранит большие объемы данных с меньшим количеством регистров |
Поддержка приложения |
Нет поддержки 64-битных приложений и программ. |
Поддерживает как 64-битные, так и 32-битные приложения и программы. |
Поддержка ОС |
Windows XP, Vista, 7, 8, Linux |
Windows XP Professional, Windows Vista, Windows 7, Windows 8, Windows 10, Linux, Mac OS |
Функции
Каждая архитектура системы команд имеет функции, которые ее определяют и дают некоторые преимущества в тех или иных вариантах использования. Следующие списки иллюстрируют функции х64 и х86:
х86
- Использует сложную архитектуру со сложным набором команд (CISC-архитектуру).
- Сложные команды требуют выполнения нескольких циклов.
- х86 имеет больше доступных регистров, но меньше памяти.
- Разработана с меньшим количеством конвейеров обработки запросов, но может обрабатывать сложные адреса.
- Производительность системы оптимизируется с помощью аппаратного подхода – х86 использует физические компоненты памяти для компенсации нехватки памяти.
- Использует программную технологию DEP (Data Execution Prevention – Предотвращение выполнения кода).
х64
- Имеет возможность обработки 64-битных целых чисел с преемственной совместимость для 32-битных приложений.
- (Теоретическое) виртуальное адресное пространство составляет 264 (16 эксабайт). Однако на сегодняшний день в реальной практике используется лишь небольшая часть из теоретического диапазона в 16 эксабайт – около 128 ТБ.
- х64 обрабатывает большие файлы, отображая весь файл в адресное пространство процессора.
- Быстрее, чем х86, благодаря более быстрой параллельной обработке, 64-битной памяти и шине данных, а также регистрам большего размера.
- Поддерживает одновременную работу с большими файлами в нескольких адресных пространствах. Кроме того, х64 одновременно эмулирует две задачи х86 и обеспечивает более быструю работу, чем х86.
- Загружает команды более эффективно.
- Использует программную технологию DEP (Data Execution Prevention – Предотвращение выполнения кода).
Применения
Из-за того, что эти две архитектуры имеют различные функции и имеют различия в доступе к ресурсам, скорости и вычислительной мощности, каждая архитектура используется для различных целей:
х86
- Многие компьютеры по всему миру по-прежнему основаны на операционных системах и процессорах х86.
- Используется для игровых консолей.
- Подсистемы облачных вычислений по-прежнему используют архитектуру х86.
- Старые приложения и программы обычно работают на 32-битной архитектуре.
- Лучше подходит для эмуляции.
- 32-битный формат по-прежнему более предпочтителен при производстве аудио из-за возможности совмещения со старой аудиотехникой.
х64
- Все большее число ПК используют 64-разрядные процессоры и операционные системы на основе архитектуры х64.
- Все современные мобильные процессоры используют архитектуру х64.
- Используется для обеспечения работы суперкомпьютеров.
- Используется в игровых консолях.
- Технологии виртуализации основаны на архитектуре х64.
- Она лучше подходит для новых игровых движков, так как она быстрее и обеспечивает лучшую производительность.
Ограничения
И хотя обе ISA имеют какие-то ограничения, х64 – все же более новый и более совершенный тип архитектуры. Ниже приведен список ограничений для обоих типов архитектур:
х86
- Имеет ограниченный пул адресуемой памяти.
- Скорость обработки ниже в сравнении с архитектурой х64.
- Фирмы-поставщики больше не разрабатывают приложения для 32-битных операционных систем.
- Для современных процессоров требуется 64-битная ОС.
- Все устройства в системе (видеокарты, BIOS и т.д.) совместно используют доступную оперативную память, оставляя еще меньше памяти для ОС и приложений.
х64
- Она не работает на устаревших устройствах.
- Ее высокая производительность и скорость, как правило, потребляют больше энергии.
- Маловероятно, что 64-разрядные драйверы будут доступны для старых систем и оборудования.
- Некоторое 32-разрядное программное обеспечения не полностью совместимо с 64-разрядной архитектурой.
Как проверить, на какой архитектуре работает ваш компьютер – х64 или х86?
Если вы купили ПК в последние 10-15 лет, то он с большой долей вероятности работает на архитектуре х64. Для того, чтобы проверить, является ли ваш компьютер 32-разрядным или 64-разрядным, выполните следующие действия:
Шаг 1: Откройте настройки
В Windows 10 нажмите на клавишу Windows и щелкните значок «Settings» («Настройки»).
Шаг 2: Откройте параметры системы
В меню настроек выберите пункт «System» («Система»).
Шаг 3: Найдите характеристики устройства
Выберите пункт «About» («О программе») на левой панели и в разделе «Device specifications» («Характеристики устройства») найдите тип системы:
В приведенном выше примере система представляет собой 64-разрядную операционную систему с процессором на базе архитектуры х64.
Через командную строку это можно сделать быстрее:
wmic OS get OSArchitecture
Ну а для Linux нужно выполнить команду:
uname -m
Что лучше – х86 или х64?
Несмотря на то, что и у х86, и у х64 есть свои преимущества, будущее не терпит ограничений, а это значит, что х86 практически перестанет использоваться или будет полностью выведена из использования. К тому же, х64 намного быстрее, может выделять больше оперативной памяти и имеет возможности параллельной обработки через 64-битную шину данных. Это делает ее лучшим вариантом при выборе между двумя типами архитектуры.
Если стоит выбор, какую ОП установить, то всегда лучше отдать предпочтение в пользу 64-разрядной ОС, поскольку она может запустить как 32-разрядное, так и 64-разрядное программное обеспечение. А вот ОС на базе х86 работает только с 32-разрядным программным обеспечением.
В общем и целом, х64 гораздо более эффективна, чем х86, поскольку использует всю установленную оперативную память, предоставляет больше места на жестком диске, имеет более высокую скорости шины и общую лучшую производительность.
Заключение
Данная статья показала различия между архитектурами системы команд х86 и х64, а также описала их функции, возможные применения и ограничения. Примите во внимание все особенности каждой ISA и сделайте выбор в пользу наиболее вам подходящей.