64-битные x86 процессоры
Эволюция микропроцессоров исторически подразумевала увеличение разрядности целочисленных регистров процессора, т.е. максимального числа бит, образующих числа, над которыми можно было выполнять элементарные арифметические действия путём исполнения соответствующих команд. Также от этого параметра зависит объём линейно (без всяческих ухищрений, замедляющих работу) адресуемой оперативной памяти, к которой может обращаться процессор.
Самый первый микропроцессор 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:
Как определить разрядность процессора — 32 или 64?
Разрядностью (или битностью) центрального процессора (ЦП) называется количество бит, которые ЦП может обрабатывать за одну команду. Разрядность определяет количество бит, отводимых хранение одной ячейки данных. То есть, если архитектура вашего процессора, например, 32 битная, то он может работать с числами, которые представлены в двоичном коде из 32 бит, причём обрабатывать эти числа он может за одну команду.
Таким же образом (за одну команду) могут обрабатываться данные и меньшей разрядности, просто их старшие биты будут игнорироваться. Современные ЦП могут работать c 8-ми, 16-ти, 32-х и 64-х разрядными типами данных. Все использующиеся сейчас ЦП в компьютерах либо 32, либо 64 разрядные.
Часто, читая описания ЦП, можно встретить обозначение x86 — это значит, что мы имеем дело с 32 битной архитектурой. Если же встречается надпись х64 – то можно сказать, что данный ЦП обладает битностью, равной 64.
Важно! Часто битность ЦП ошибочно принимается за основу при определении максимального объёма памяти, к которому он может обращаться. Это, естественно, не так. Шины адреса и данных практически любого ЦП имеют разную битность и никак не влияют друг на друга.
Значение битности ЦП играет не последнюю роль для пользователей, поскольку битности операционной системы (ОС) и процессора, которые используются друг с другом, должны совпадать. Однако, здесь работает принцип обратной совместимости: на 64 разрядный ЦП может быть установлена операционная система как 32 так и 64 разрядная.
Версия операционной системы в данном случае не играет роли: например, все ОС Windows или Linux, уже начиная с появления первых 64 разрядных ЦП имеют как 32 битные так и 64 битные сборки. То есть, существуют все версии Windows (от XP до 10-й), имеющие как 64 так и 32 битную среду.
Важно! Установить на ЦП семейств х86 ОС, в названии которой фигурирует «х64» невозможно! Мало того, невозможно запускать исполняемые файлы для 64 битных ЦП на 32 битных ОС.
Именно поэтому определение того, какие именно (32 или 64 разрядные) данные используются ЦП весьма важно. Часто от этого зависит работоспособность достаточно больших групп пользователей, использующих одинаковое программное обеспечение.
В данной статье будет рассмотрено, как узнать разрядность процессора при помощи различных способов.
Версия операционной системы в данном случае не играет роли: например, все ОС Windows или Linux, уже начиная с появления первых 64 разрядных ЦП имеют как 32 битные так и 64 битные сборки. То есть, существуют все версии Windows (от XP до 10-й), имеющие как 64 так и 32 битную среду.
Важно! Установить на ЦП семейств х86 ОС, в названии которой фигурирует «х64» невозможно! Мало того, невозможно запускать исполняемые файлы для 64 битных ЦП на 32 битных ОС.
Именно поэтому определение того, какие именно (32 или 64 разрядные) данные используются ЦП весьма важно. Часто от этого зависит работоспособность достаточно больших групп пользователей, использующих одинаковое программное обеспечение.
В данной статье будет рассмотрено, как узнать разрядность процессора при помощи различных способов.
Откроется консоль командного процессора. В ней следует ввести команду «systeminfo». Результатом её выполнения будет длинный перечень параметров системы. Интересующий нас пункт называется «Процессор(ы):» В нём будет написано название модели ЦП. И обязательно указана его битность (либо цифрами 32 или 64, либо надписями «х86» или «х64»).
Через свойства компьютера
Можно определить, какую разрядность поддерживает процессор, посмотрев свойства системы.
Один из способов сделать это – войти в параметр «Система» панели управления и там, в разделе «Тип системы» можно будет увидеть её разрядность. Если она равна 64, то и ЦП тоже 64 битный.
Однако, как уже было сказано ранее, поскольку на 64 разрядный ЦП может быть поставлена 32 разрядная система, необходимо будет уточнить тип используемого ЦП. Для этого следует зайти в «Диспетчер устройств», ссылка на который есть на той же странице, в «Устройствах» выбрать ЦП и открыть в его свойствах вкладку «Сведения».
В этой вкладке интересующий нас параметр называется «ИД оборудования». В нём будет указан тип используемого процессора – 64 или 32 разрядный.
Альтернативой является исследование свойств устройства, называемого в Диспетчере устройств «Компьютер». В нём может содержаться описание применяемого типа ПК с указанием его битности.
Аналогично свойствам процессора, следует зайти в свойства компьютера и во вкладке «Сведения» посмотреть описание устройства. Параметр может также называться «Выводимое имя». В любом случае, в нём будет присутствовать либо надпись «х86», либо «х64», что и будет соответствовать битности используемого ЦП в 32 или 64 соответственно.
Узнать разрядность через интернет
Для этого достаточно набрать в строке поиска фразу «узнать разрядность онлайн». Первые 5-10 результатов поиска дадут ссылки на сайты, определяющие этот параметр. После этого следует перейти на этот сайт и активный контент автоматически опознает количество разрядов ЦП и версию ОС.
Важно! Исполнение активных компонентов может быть заблокировано браузером и в этом случае определить интересующий параметр не получится. Для этого следует разрешить выполнение активного содержимого на странице.
Через BIOS
Самый простой способ, не требующий наличия программного обеспечения вообще. При загрузке ПК следует войти в BIOS, нажав F2 или Del. Далее следует выбрать раздел «System Settings», «Main» или «CPU Settings» – в зависимости от производителя BIOS он может называться по-разному, и посмотреть значение параметра «Processor Type». В нём будет указана фирма производитель, модель ЦП, его частота и разрядность.
Что значит процессор x64
Процессор современного компьютера представляет собой сложнейшее устройство. Да что там говорить, если из многих разработчиков «больших» CPU, предназначенных для массового сегмента рынка, сейчас осталось всего два: Intel и AMD.
История современных процессоров начинается с лета 1978 года, после появления 16-битного CPU Intel 8086 . Максимальный объём памяти составлял 1 мегабайт — достигалось это за счёт 20-битной адресной шины, в которой 4 бита отводилось под сегмент, а оставшиеся 16 бит — номер ячейки данного сегмента.
Забавно, что на момент начала разработки архитектура рассматривалась в качестве своеобразной вре́менной «затычки». Основная цель была «выбросить» на рынок что-то, дабы не отпустить конкурентов далеко вперёд. При этом, грёзы Intel были направлены на новую архитектуру iAPX 432. Как это часто бывает, «прорывная» архитектура оказалась слишком сложной и дорогой в производстве, а «временное» обрело статус постоянного.
Дальнейшее развитие предусматривало совместимость со старым набором команд, чтобы программистам не приходилось постоянно перевыпускать программы под новые процессоры. Таким образом, современные CPU содержат инструкции того самого 8086, с которого всё начиналось. Собственно, обозначение x86 и подчеркивает совместимость программы с набором команд процессоров, основанной на архитектуре Intel 8086.
Следующей важной вехой можно считать выход процессора Intel 80386 . Это уже был 32-битный CPU, способный адресовать до 4 гигабайт памяти. Отличительной особенностью стала «плоская модель» работы с памятью, когда всё ОЗУ представлялось единым «куском», что избавляло программистов от необходимости постоянно переключать сегменты для работы с памятью.
Спустя много лет стало очевидно, что и этого объёма не хватит. Здесь уже вовремя подсуетилась AMD, представив новый расширенный 64-битный набор команд, который сохранял совместимость со старым. Технологию нарекли x86-64, подчёркивая её преемственность от x86. Так же можно встретить вариации, обозначающие то же самое: AMD64, EM64T (ранние 64-битные процессоры Intel) и Intel64.
Теперь мы знаем, что основными процессорами является 32-битные и 64-битные. Собственно, это и подчёркивается в дистрибутивах операционных систем и программных продуктов.
Например, обозначение Windows 7 x64 показывает, что для установки данной ОС требуется процессор с поддержкой 64-битной архитектуры x86-64.