No Image

Что означает процессор x64

СОДЕРЖАНИЕ
0 просмотров
11 марта 2020

x86-64 (также AMD64/Intel64/EM64T) — 64-битное расширение, набор команд для архитектуры x86, разработанное компанией AMD, позволяющее выполнять программы в 64-разрядном режиме.

Это расширение архитектуры x86 с почти полной обратной совместимостью.

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

Набор команд x86-64 в настоящее время поддерживается:

  • AMD — процессорами Z-серии (например, AMD Z-03), C-серии (например, AMD C-60), G-серии (например, AMD T56N), E-серии (например, AMD E-450), E1, E2, A4, A6, A8, A10, FX, Athlon 64, Athlon 64 FX, Athlon 64 X2, Athlon II, Phenom, Phenom II, Turion 64, Turion 64 X2, Turion II, Opteron, FX, Ryzen, Ryzen Threadripper последними моделями Sempron;
  • Intel (с незначительными упрощениями) под названием «Intel 64» (ранее известные как «EM64T» и «IA-32e») в поздних моделях процессоров Pentium 4, а также в Pentium D, Pentium Extreme Edition, Celeron D, Celeron G-серии, Celeron B-серии, Pentium Dual-Core, Pentium T-серии, Pentium P-серии, Pentium G-серии, Pentium B-серии, Core 2 Duo, Core 2 Quad, Core 2 Extreme, Core i3, Core i5, Core i7, Core i9, Atom (далеко не всеми, но большинством последних) и Xeon;
  • VIA — процессорами Nano.

Содержание

Название технологии [ править | править код ]

Существует несколько вариантов названий этой технологии, которые иногда приводят к путанице.

  • x86-64 — первоначальный вариант. Именно под этим названием фирмой AMD была опубликована первая предварительная спецификация.
  • x64 — официальное название версий операционных систем Windows и Solaris, также используемое как название архитектуры фирмами Microsoft и Oracle.
  • AA-64 (AMD Architecture 64) — так архитектуру назвал популярный неофициальный справочник sandpile.org (внеся информацию практически сразу после публикаций первой предварительной спецификации) по аналогии с IA-64.
  • Hammer Architecture — название по первым ядрам процессоров, её поддерживавшим — AMD Clawhammer (гвоздодёр) и AMD Sledgehammer (кувалда).
  • AMD64 — после выпуска первых Clawhammer и Sledgehammer в названии архитектуры появилось название фирмы-разработчика AMD. Сейчас является официальным для реализации AMD.
  • Yamhill Technology — первое название реализации технологии компанией Intel. Иногда упоминалось название CT (Clackamas Technology).
  • EM64T — первое официальное название реализации Intel. Расшифровывалось как Extended Memory 64 Technology.
  • IA-32e — иногда встречалось совместно с EM64T, чаще для обозначения длинного режима, который в документации Intel называется «режимом IA-32e».
  • Intel 64 — текущее официальное название архитектуры Intel. Постепенно Intel отказывается от наименований IA-32, IA-32e и EM64T в пользу этого названия, которое теперь является единственным официальным для этой архитектуры со стороны компании Intel.

На сегодняшний день наиболее распространёнными являются «x64», «x86-64» и «AMD64».

Иногда упоминание AMD вводит пользователей в заблуждение, вплоть до того, что они отказываются использовать дистрибутивы родных версий операционной системы, мотивируя это тем, что на их процессоре Intel версия для AMD не будет работать; на самом деле распространители ПО используют название amd64 лишь потому, что именно AMD была пионером в разработке этой технологии.

Часто пользователи путают архитектуру x86-64 с IA-64, ошибочно скачивая ПО для этой архитектуры, и затем обнаруживают, что программа не запускается. Во избежание подобных ошибок следует помнить, что Intel 64 и IA-64 — это совершенно разные, несовместимые между собой микропроцессорные архитектуры (последняя — исключительно серверная).
Представители Intel 64 — последние модели Pentium 4, ряд моделей Celeron D, семейство Core 2, Core i3, Core i5, Core i7 и некоторые модели Intel Atom; представители IA-64 — семейства Itanium и Itanium 2.

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

Процессоры данной архитектуры поддерживают два режима работы: Long mode («длинный» режим) и Legacy mode («унаследованный», режим совместимости с 32-битным x86).

Long Mode [ править | править код ]

«Длинный» режим — «родной» для процессоров AMD64. Этот режим даёт возможность воспользоваться всеми дополнительными преимуществами, предоставляемыми архитектурой AMD64. Для использования этого режима необходима 64-битная операционная система, например, Windows Server 2003/2003R2/2008/2008R2/2012, Windows XP Professional x64 Edition, Windows Vista x64, Windows 7/8/8.1/10 x64 или 64-битные варианты UNIX-подобных систем GNU/Linux, FreeBSD, OpenBSD, NetBSD (чистые 64-битные сборки, однако, имеют возможность запуска 32-битных приложений), Solaris (смешанная 32/64 сборка с разными ядрами для 32- и 64-битных процессоров), Mac OS X (смешанная 32/64 сборка с 32-битным ядром, начиная с версии 10.4.7).

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

В «длинном» режиме упразднён ряд «рудиментов» архитектуры x86, таких, как режим виртуального 8086, сегментированная модель памяти (однако, осталась возможность использования сегментов FS и GS, что полезно для быстрого нахождения важных данных потока при переключении задач), аппаратная мультизадачность, а также ряд команд, как реализующих упраздненные возможности, так и работающие с BCD-числами, которые в новых программах практически не использовались. Среди особенностей «длинного» режима следует отметить тот факт, что он активируется установкой флага CR0.PG, который используется для включения страничного MMU (при условии что такое переключение разрешено (EFER.LME=1), в противном случае просто произойдет включение MMU в «унаследованном» режиме). Таким образом, невозможно исполнение 64-битного кода с запрещённым страничным преобразованием. Это создаёт определённые трудности в программировании, поскольку при переключении из «длинного» в «унаследованный» режим и обратно (например, для вызова функций BIOS или DOS, монитором виртуальной машины, и т. д.) требуется двойной сброс MMU, для чего код переключения должен находиться в тождественно отображённой странице.

Читайте также:  Haptic touch iphone xr

Legacy Mode [ править | править код ]

Данный «унаследованный» режим позволяет процессору AMD64 выполнять инструкции, рассчитанные для процессоров x86, и предоставляет полную совместимость с 32-битным кодом и операционными системами. В этом режиме процессор ведёт себя точно так же, как x86-процессор, например Athlon или Pentium III, и дополнительные функции, предоставляемые архитектурой AMD64 (например, дополнительные регистры), недоступны. В этом режиме 64-битные программы и операционные системы работать не будут.

Особенности архитектуры [ править | править код ]

Разработанный компанией AMD набор инструкций x86-64 (позднее переименованный в AMD64) — расширение архитектуры Intel IA-32 (x86-32). Основной отличительной особенностью AMD64 является поддержка 64-битных регистров общего назначения, 64-битных арифметических и логических операций над целыми числами и 64-битных виртуальных адресов. Для адресации новых регистров для команд введены так называемые «префиксы расширения регистра», для которых был выбран диапазон кодов 40h-4Fh, использующихся для команд INC и DEC в 32-битных режимах. Команды INC и DEC в 64-битном режиме должны кодироваться в более общей, двухбайтовой форме.

Архитектура x86-64 имеет:

  • 16 целочисленных 64-битных регистров общего назначения (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 — R15);
  • 8 80-битных регистров с плавающей точкой (ST0 — ST7);
  • 8 64-битных регистров Multimedia Extensions (MM0 — MM7, имеют общее пространство с регистрами ST0 — ST7);
  • 16 128-битных регистров SSE (XMM0 — XMM15);
  • 64-битный указатель RIP и 64-битный регистр флагов RFLAGS.

Сегментная модель организации памяти [ править | править код ]

  • Найти и оформить в виде сносок ссылки на независимые авторитетные источники, подтверждающие написанное.
  • Проставив сноски, внести более точные указания на источники.

Пожалуйста, после исправления проблемы исключите её из списка параметров. После устранения всех недостатков этот шаблон может быть удалён любым участником.

Разрабатывая архитектуру x86-64, инженеры корпорации AMD решили навсегда покончить с главным «рудиментом» архитектуры x86 — сегментной моделью памяти, которая поддерживалась ещё со времён 8086. Однако из-за этого при разработке новой версии своего продукта для виртуализации программисты компании VMware столкнулись с непреодолимыми трудностями при реализации виртуальной машины для 64-битных гостевых систем [1] : поскольку для отделения кода монитора от кода «гостя» программой использовался механизм сегментации, эта задача стала практически неразрешимой.

Осознав ошибку, AMD вернула ограниченный вариант сегментной организации памяти, начиная с ревизии D архитектуры AMD64, что позволило запускать 64-битные ОС в виртуальных машинах. Intel этому примеру не последовала, и на её процессорах, не поддерживающих средства аппаратной виртуализации [ какие? ] , запустить 64-битную виртуальную машину нельзя [ источник не указан 2927 дней ] . Для проверки того, возможен ли на процессоре запуск 64-битных гостевых ОС, VMware предоставляет вместе со своими продуктами специальную утилиту.

Запуск, установка 64-битных гостевых систем на данный момент (2013 г.) возможна, продукт компании VMware — ESXi (workstation и тд.) — прекрасно поддерживает архитектуру x86-64.

Следует отметить, что первоначально попавшие «под нож» команды LAHF и SAHF, которые также активно используются ПО виртуализации, затем были возвращены в систему команд. С распространением средств аппаратной виртуализации (Intel VT, AMD-V) потребность в сегментации постепенно отпадет.

Сменить шрифт на обычный короткая ссылка на новость:
следующая новость | предыдущая новость Краткая историческая справка.

Эволюция микропроцессоров исторически подразумевала увеличение разрядности целочисленных регистров процессора, т.е. максимального числа бит, образующих числа, над которыми можно было выполнять элементарные арифметические действия путём исполнения соответствующих команд. Также от этого параметра зависит объём линейно (без всяческих ухищрений, замедляющих работу) адресуемой оперативной памяти, к которой может обращаться процессор.
Самый первый микропроцессор Intel 4004 был 4-битным, а основатель семейства x86, т.е. первый процессор, использующий наиболее популярный до сих пор базовый набор команд, Intel 8086 был 16-битным. Эпоха 32-битных микропроцессоров началась с 1985 года с процессором Intel 386, с тех пор вплоть до Intel Pentium4 и AMD AthlonXP включительно система команд процессоров только дополнялась (MMX, SSE/SSE2/SSE3, 3Dnow!), но, несмотря на увеличение разрядности внешних шин и шин кэшей вплоть до 256-бит в некоторых случаях, число разрядов целочисленных регистров общего назначения оставалось равным 32.
Тем временем, практически все высокопроизводительные процессоры более поздних, нежели x86, архитектур (преимущественно – варианты RISC) уже давно были 64-битными. (Первый такой процессор, MIPS R3000, появился в 1994 году и был известен в основном по рабочим станциям и серверам SGi). Более того, Intel продвигала уже второе поколение собственных изначально 64-битных процессоров с архитектурой IA64(базирующейся на технологии VLIW) с коммерческим названием Itanium, не обладавших программной x86-совместимостью.
Однако в 2002 году компания AMD представила развитие архитектуры x86 под названием AMD64, представляющее собой очередное расширение набора команд x86, но рассчитанное на работу с 64-битными целочисленными регистрами общего назначения. В "железе" этот набор команд впервые был реализован на процессорах семейства AMD K8: Opteron/Athlon64, полностью программно совместимых и с обычными x86 процессорами.
В течении последующих двух лет стало ясно, что полная реализация потенциала этих процессоров возможна только при работе в операционной системе, использующей соответствующий набор команд и 64-битную адресацию памяти, что, в первую очередь, позволяло без всяких ограничений работать с линейными массивами данных объемом более 4Гб.
В первую очередь на новые процессоры были портированы ОС семейства Linux вместе с достаточно представительным набором критичных к скорости процессора и требующих больших объёмов памяти приложений. Скорость и стабильность работы новых процессоров, а также принципиальные трудности с созданием настольного процессора с архитектурой Intel IA64 сподвигли компанию Microsoft заняться портированием своих ОС на эту платформу.
С этого момента стало ясно, что набор команд AMD64 станет новым индустриальным стандартом, и Intel не осталось ничего другого, как добавить в свои процессоры полный аналог набора команд AMD64, в реализации Intel названный EM64T (Extended Memory 64-bit Technology).

Читайте также:  Технологический процесс сборки компьютера

Чем принципиально 64-битные x86 процессоры отличаются от 32-битных?
Помимо возможности быстрой работы с целыми 64-битными числами и прямой адресации несравнимо больших объёмов как виртуальной, так и физической памяти, новый индустриальный стандарт для x86 процессоров ликвидировал три принципиальных недостатка этой архитектуры:
1)Удвоение числа целочисленных регистров общего назначения – по этому параметру все потомки Intel 386 очень сильно отставали от современных RISC и VLIW процессоров. Использование компилятором этих регистров позволяет заметно улучшить эффективность реализации многих алгоритмов.
2)Использование для операций с плавающей точкой не стека, а регистров, используемых в наборе команд SSE2. Очень заметно отражается на производительности, но также требует перекомпиляции программного обеспечения.
3)DEP – Data Execution Protection (защита от передачи на выполнение содержимого сегмента данных при возникновении ошибки переполнения), также называется EVP (Enhanced Virus Protection), сильно затрудняет работу определённых классов вредоносных программ, в первую очередь – червей и троянцев. Не требует перекомпиляции ПО, поддерживается и 32-битными ОС Microsoft, начиная с WindowsXP SP2 и Wndows 2003 Server SP1.

Что нужно для работы 64-битных x86 приложений на моём ПК?
1)64-битный x86 процессор. На момент написания FAQ это были процессоры AMD с поддержкой технологии AMD64 и Intel c EM64T, соответственно. Конкретно речь идёт о AMD Opteron/Athlon64/Turion 64(мобильный аналог Athlon64)/Sempron 64/Phenom64. У Intel поддержка EM64T присутствует у процессоров Celeron D 3X1/3X6, Pentium4 5X1/5X6/6XX, Pentium D, Pentium XE (не Pentium4 XE!), всех Xeon DP с 800МГц с шиной и XeonMP c 667МГц шиной, а также у большинства будущих процессоров Intel за исключением Pentium M и Сeleron M.

Дополнение от января 2008 года – на данный момент набор команд AMD64/EM64T окончательно стал стандартом для всех производимых мобильных, настольных и серверных x86 процессоров Intel и AMD.

Также надо убедиться, что процессор корректно опознаётся BIOS’ом материнской платы (это означает, что в него загружен необходимый микрокод, несоблюдение этого условия может привести к серьёзным проблемам в работе компьютера). В некоторых ситуациях может потребоваться обновление BIOS материнской платы. В первую очередь это касается процессоров Intel, поскольку не все LGA775-материнские платы изначально поддерживали такие процессоры.
2)Операционная система.
На момент написания FAQ доступны следующие ОС:
Microsoft Windows XP Professional x64 Edition, Microsoft Windows 2003 Server x64 Editions (Standart/Enterprise/Datacenter), Windows Server 2008, также на платформу AMD64 перенесены Sun Solaris и различные варианты Linux и FreeBSD,(детальное рассмотрение особенностей unix-подобных ОС выходит за рамки данного FAQ), Windows Vista также имеет x64 версии всех редакций кроме начальных.
3)Драйверы. Все драйверы, работающие в ядре системы должны быть 64-битными, обратной совместимости не предусмотрено. Для наиболее распространённых комплектующих (видеокарты nVidia GeForce и ATi Radeon, чипсеты и дисковые контроллеры Intel, VIA, nVidia) такие драйверы уже написаны.

Будут ли работать обычные приложения на 64-битной ОС Windows?
1)32-битные приложения для Microsoft Windows – да, будут, при этом в некоторых ситуациях возможен прирост производительности по сравнению с выполнением на том же компьютере, но под 32-битной ОC(особенно если приложение использует очень большие объёмы оперативной памяти), но при этом 32-битные приложения не могут обращаться к 64-битным DLL и элементам Active Controls и наоборот. (На практике это выразилось в том, что в составе 64-х битных Windows Internet Explorer оставлен 32-битным для корректной работы со страницами, содержащими ActiveX элементы.)
2) 16-битные приложения для Microsoft Windows – нет, за исключением нескольких программ-инсталляторов.
3) DOS-приложения – нет. (На момент написания FAQ стало известно о портировании на 64-битные версии Windows прекрасно зарекомендовавшего себя OpenSource эмулятора DosBox, что почти полностью снимает возможные проблемы)
4)Приложения Windows для IA64(Itanium) – нет.

Что всё это даст мне в данный момент и что это может дать в будущем?
Для обычных пользовательских повседневных программ перенос их в данный момент на 64-битную платформу не даёт какого-либо качественно скачка в производительности. Исключением, (да и то относительным) являются только некоторые новейшие высокотехнологичные игры.
Наибольшую пользу от перехода на 64-бита получают программы для работы с базами данных, причём чем больше объём используемых данных, тем более заметен выигрыш, программы для CAD/CAE (автоматизированное проектирование, моделирование и т.п.), а также программы для создания цифрового контента (обработка изображений, звука, видео), более подробную информацию уже, как правило, можно узнать на сайте фирмы-разработчика используемого вами ПО – как правило, из сроков готовности 64-битных версий секретов никто не делает.
Из программ, портирование которых на 64-бит Windows завершено или близится к завершению стоит упомянуть Microsoft SQL Server 2000 и 2005, Cakewalk Sonar 4.0, CryTek FarCry, Epic Unreal Tournament 2004, SiSoft Sandra 2005 Полный список ПО, которое находится на разных стадиях переноса под Windows x64 можно найти здесь.

Сравнительная таблица ограничений по максимальному объёму используемой оперативной памяти и числу процессоров для 32 и 64-битных версий операционных систем от Microsoft:

Опубликовано Михаил Непомнящий в 10.02.2017

Выбирая версию операционной системы Windows, пользователи обычно задумываются о домашнем или профессиональном релизе. Однако есть другой важный фактор отличия – это разрядность операционной системы в 32 или 64 бита.

Читайте также:  Роботы помощники для дома

Вероятно, вы что-то слышали о том, что бывают разные разрядности систем, что у них есть свои отличия. Но как разобраться в них? Давайте посмотрим откуда берутся данные обозначения и о чем они говорят.

Что обозначает количество бит?

Разрядность архитектуры компьютера зависит от центрального процессора. В настоящее время большинство процессоров для ПК делятся именно на эти два варианта – 32 и 64 бита. 64-разрядный процессор более производительный, чем его 32-битная версия, за единицу времени он способен обрабатывать значительно большее количество информации.

Чтобы понять разницу, необходимо вспомнить, что для компьютера любая информация – это последовательность нулей и единичек, т.е. бинарный код. В одном бите может храниться один из двух возможных вариантов – 0 или 1, в двух битах – четыре варианта сочетаний нулей и единичек.

Аналогичным образом 32-разрядная система означает наличие 2-х в 32-й степени бит адресов или 4.294.967.296. В то же время 64 разрядная система – это двойка в 64-й степени, то есть 18.446.744.073.709.551.616 ячеек для записи. Иными словами, примерно 4 миллиона байт (около 4-х гигабайтов) против примерно 18 квинтильонов байт (около 18-ти миллиардов гигабайтов).

Как выбрать версию Windows

Если вы уверены, что ваш компьютер использует 64-разрядный процессор, вам также необходимо установить 64-разрядную операционную систему. 32-битная версия Windows будет работать на 64-разрядном процессоре, но вы не сможете использовать всех возможностей своего устройства. При этом нельзя установить 64-битную операционную систему на 32-разрядный процессор. Однако Windows в 64 бита спокойно работает с программами, написанными под 32-разрядные ОС.

Для рядового пользователя существует две основные разницы между версиями Windows. Основная заключается в том, что 32-битная ОС может использовать лишь до 4-х гигабайтов оперативной памяти. Так что даже если на вашем ПК установлено 16 гигабайтов ОЗУ, но при этом установлена 32-разрядная версия Windows, то использоваться будет только 4 Гб. Для 64-битных ОС такого ограничения нет. Разве что есть минимальный порог – минимум 1 Гб оперативной памяти.

Другой особенностью является разница между папкой Program Files. В 32-битной ОС все программы устанавливаются в эту директорию. В 64-рязрядных системах дополнительно существует папка с названием Program Files (x86). Это связано с тем, что программы для 32-битных архитектур пишутся иначе, нежели для 64-битных.

При этом в 64-разрядной версии Windows в папку Program Files попадают программы именно 64-битные, тогда как в странно обозначенную как x86 директорию отправляются 32-разрядные приложения. К слову, 64-битные системы обозначаются как x64.

Ранее существовали также 16-битные операционные системы, например, версия Windows 3.1. При этом программы аналогичного порядка еще можно запустить на 32-битных операционных системах, а вот на 64-разрядных уже не получится. Разве что при использовании специального эмулятора 32-битной системы.

Битность программного обеспечения

При установке новых программ обращайте внимание на их разрядность. Некоторые производители предлагают на выбор 32 и 64 бита, другие разрабатывают только 32-разрядные версии, а кто-то автоматически определяет версию вашей ОС и устанавливает подходящую по разрядности версию. В любом случае, если у вас установлена 64-битная версия Windows, выбирайте программы аналогичного порядка, когда есть такая возможность.

Зачастую наличие 64-битной программы не будет означать лучшую ее производительность в сравнении с младшей версией, однако как минимум отразится на ее стабильности. Поэтому обращайте внимание на обозначения производителей ПО, вроде слов Version или Edition, прежде скачивать дистрибутив с официального сайта.

Так как 32-битная версия программы работает у всех, разработчики зачастую используют ее как решение по умолчанию. Но мы с вами выяснили, что для 64-битной ОС лучше использовать более современное программное решение.

Как узнать версию ОС?

Разобравшись с некоторыми особенностями 32-х и 64-х битных операционных систем, давайте выясним, где прописано данное обозначение в установленной у нас Windows. Для этого достаточно зайти в свойства системы одним из доступных способов. Например, по сочетанию клавиш Win + Break. Для Windows 8 и 10 можно кликнуть правой клавишей мыши на меню Пуск и выбирать пункт меню «Система».

Здесь отображается основная информация о вашем компьютере: тип процессора, количество оперативной памяти (установленной, либо просто используемой, как в случае с 32-битными ОС) и версия Windows. В области «Система» в графе «Тип системы» есть информация о разрядности как операционной системы, так и используемого процессора.

Битность процессора и операционной системы должна совпадать. В противном случае, вам рекомендуется обновить операционную систему до 64-разрядной версии. При этом обновить компьютер с 32-битным процессором до 64-битной ОС не получится.

64-бита как стандарт

Медленно, но верно 64-разрядные компьютеры становятся современным стандартом. Если во времена Windows XP все эти истории с битами путали даже опытных пользователей и вызывали проблемы для разработчиков, то начиная с Windows 7 ситуация начала меняться.

4 гигабайта оперативной памяти долгое время было достаточно для большинства целей. Отчасти потому, что развитие процессоров не успевало предлагать широкой публике доступные 64-разрядные решения. На начало 2017 года четырех гигабайтов ОЗУ по-прежнему достаточно для работы в ряде областей. Однако 64-битные процессоры становятся всё доступнее и 32-разрядные системы постепенно устаревают.

Это вынуждает разработчиков программного обеспечения активнее переходить на 64-битную архитектуру, которая постепенно становится стандартом. А так как потолок в ограничениях 64-разрядных системах в обозримом будущем вряд ли будет пробит, то данный стандарт приходит надолго.

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector