1. Главная страница » Компьютеры

Em64t cpu что это

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

Эволюция микропроцессоров исторически подразумевала увеличение разрядности целочисленных регистров процессора, т.е. максимального числа бит, образующих числа, над которыми можно было выполнять элементарные арифметические действия путём исполнения соответствующих команд. Также от этого параметра зависит объём линейно (без всяческих ухищрений, замедляющих работу) адресуемой оперативной памяти, к которой может обращаться процессор.
Самый первый микропроцессор 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).

Читайте также:  Honor 10 corning gorilla glass

Чем принципиально 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.

Читайте также:  Ews 1020 как разобрать

Также надо убедиться, что процессор корректно опознаётся 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) — нет.

Читайте также:  Nvme pm951 nvme samsung

Что всё это даст мне в данный момент и что это может дать в будущем?
Для обычных пользовательских повседневных программ перенос их в данный момент на 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:

Тип материала Информация о продукции и документация

Идентификатор статьи 000005898

Последняя редакция 29.01.2019

Что такое технология расширенной памяти Intel® 64 (Intel® EM64T)?
Intel® Технология расширенной памяти 64 (Intel® EM64T) — это новая технология, которая расширяет платформу серверов и рабочих станций с 64-битной адресацией и соответствующими инструкциями.

Какие 32-и 64-битные режимы доступны, и при каких условиях? Можно ли запускать 32-разрядные приложения на процессоре Intel® с использованием технологии Intel Extended Memory 64?

Устаревший режим Режим совместимости 64-разрядный режим 32-разрядная операционная система 64-разрядная операционная система 64-разрядная операционная система 32-разрядные приложения 32-разрядные приложения 64-разрядные приложения 32-разрядные драйверы 64-разрядные драйверы 64-разрядные драйверы 4 ГБ адресного пространства 64-разрядное виртуальное адресное пространство GPRs являются 32-бит GPRs являются 64-бит

Какие Процессоры Поддержка технологию расширенной памяти Intel 64?
Начиная с 4 квартала 2006, все мобильные, настольные и серверные Процессоры , основанные на микроархитектуре микроархитектура Intel® Core™ , поддерживают технологию Intel® EM64T.

Аннотация

В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.

Введение

Развитие задач, решаемых с помощью вычислительной техники, постоянно повышает требования к аппаратуре, на которой эти задачи решаются. Требования к вычислительным системам класса персональных компьютеров увеличиваются уже более 20 лет год от года. Это происходит из-за желания людей решать на персональных компьютерах все более сложные задачи, которые ранее решались лишь на высокопроизводительных мэйнфреймах.

Какие же требования возникают к персональным компьютерам для решения сложных задач? Разумеется, это требования по объему оперативной памяти и быстродействию процессора (не путать с частотой!). Господствующая последнее десятилетие архитектура IA32 (Intel Architecture 32) предлагает 4Гб (2^32) оперативной памяти, из которой приложению обычно доступно только 2Гб, различные блоки регистров, а также наборы ухищрений типа блока предсказания переходов, которые должны повысить производительность системы без повышения такого абстрактного параметра как частота процессора [1].

Современные задачи для персональных компьютеров по памяти уже подходят к 2Гб, а повышение частоты процессоров не приводит к повышению производительности.

Решением проблемы ограничений современных 32-битных машин в какой-то степени стало появление 64-битных архитектур SPARC64 и Intel Itanium. Однако они предназначены для hi-end систем и недоступны в качестве дешевых решений. По настоящему массовыми предназначено стать архитектуре AMD64 компании AMD и ее реализации EM64T компании Intel. Эти архитектуры являются близнецами и программы, скомпилированные для одной из них, запускаются и на другой. Однако исторически первой появилось именно решение от AMD. EM64T является всего лишь фактически реализацией AMD64 от Intel. Архитектура AMD64 в настоящее время реализована в процессорах всех классов: мобильных, рабочих станциях, серверах.

Несмотря на явные преимущества платформы AMD64 (о которых подробно говорится в представленной статье), ничего революционно нового в вычислительной технике она не несет. Переход от 32-х бит к 64-м не привел к качественным улучшениям, в то время как прошлый подобный переход от 16-ти к 32-битам заметно повысил надежность и производительность систем.

1. Архитектура AMD64

Архитектура AMD64 полностью описывается в пяти томах документации, предоставляемой компанией AMD. В этой главе представлен краткий обзор, основанный на первом томе [2]. Обратим внимание на то, что в официальной документации данная архитектура обозначается как AMD x86-64, что подчеркивает ее обратную совместимость.

1.1. Описание архитектуры

Архитектура AMD x86-64 простое, но в то же время мощное обратно-совместимое расширение устаревшей промышленной архитектуры x86 [1]. Она добавляет 64-битное адресное пространство и расширяет регистровые ресурсы для поддержки большей производительности для перекомпилированных 64-битных программ, обеспечивая поддержку устаревшего 16-битного и 32-битного кода приложений и операционных систем без их модификации или перекомпиляции.

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

Архитектура x86-64 вводит две новые особенности:

1. расширенные регистры (рисунок 1):

  • 8 регистров общего назначения (general-purpose registers);
  • все 16 регистров общего назначения 64-битные;
  • 8 новых 128-битных XMM регистров;
  • новый командный префикс (REX) для доступа к расширенным регистрам.

2. специальный режим "Long Mode" (устоявшегося перевода пока нет), который представлен в таблице 1:

  • до 64-бит виртуальных адресов;
  • 64-битные указатель команд (RIP);
  • плоское (flat) адресное пространство.

Рисунок 1. Набор регистров x86-64

Таблица 1. Режимы работы процессора

Таблица 2 содержит сравнение ресурсов регистров и стека, доступных приложению в различных режимах. Левые колонки показывают ресурсы устаревшей x86 архитектуры, которые доступны только для совместимости. Правые колонки показывают ресурсы доступные в 64-битном режиме. Серым цветом показано отличие между режимами.

Таблица 2. Регистры и стек, доступные в различных режимах

Как показано в таблице 2, устаревшая архитектура x86 (такой режим называется legacy mode в x86-64) поддерживает 8 регистров общего назначения. Однако в действительности, в основном, используются лишь 4 регистра EAX, EBX, ECX, EDX. Регистры EBP, ESI, EDI, ESP имеют специальное назначение. Архитектура x86-64 добавляет 8 новых регистров общего назначения и увеличивает размер регистров с 32-х до 64-х бит. Это позволяет компиляторам повышать производительность кода. 64-битный компилятор может лучше использовать регистры для хранения переменных. Компилятор также может минимизировать обращения к памяти, локализуя работу внутри регистров общего назначения.

Архитектура x86-64 поддерживает весь набор инструкций x86 и добавляет некоторые новые инструкции для поддержки long-режима. Команды разбиты на несколько подмножеств:

  • Команды общего назначения. Это основные x86 целочисленные команды, используемые во всех программах. Большинство из них предназначены для загрузки, сохранения, обработки данных, расположенных в регистрах общего назначения или памяти. Некоторые из этих инструкций управляют потоком команд, обеспечивая переход к другому месту в программе.
  • 128-битные медиа-команды. Это SSE и SSE2 (streaming SIMD extension) команды, предназначенные для загрузки, сохранения, или обработки данных, расположенных в 128-битных XMM регистрах. Они выполняют целочисленные или с плавающей точкой операции над векторными (упакованными) и скалярными типами данных. Поскольку векторные инструкции могут независимо выполнять одну операцию над множеством данных, они называются single-instruction, multiple-data (SIMD) командами. Они используются для медиа- и научных приложений для обработки блоков данных.
  • 64-битные медиа-команды. Это multimedia extension (MMX) и 3DNow! команды. Они сохраняют, восстанавливают и обрабатывают данные, расположенные в 64-битных MMX регистрах. Подобно их 128-битным аналогам, описанным выше, они выполняют целочисленные и с плавающей точкой операции надо векторными (упакованными) и скалярными данными.
  • x87 команды. Предназначены для работы с плавающей точкой в старых x87 приложениях. Обрабатывают данные в x87 регистрах.

Некоторые из этих команд соединяют два или более подмножества описанных выше команд. Например, это команды пересылки данных между регистрами общего назначения и XMM или MMX регистрами.

Рассмотрим более подробно представленные в таблице 1 режимы работы, поддерживаемые архитектурой x86-64. В большинстве случаев размеры адресов и операндов могут быть перекрыты префиксом команды.

Сначала опишем long-режим. Это расширение устаревшего защищенного (protected) режима. Long-режим состоит из двух подвидов: 64-битный режим и режим совместимости. 64-битный режим поддерживает все новые возможности и регистровые расширения, введенные в x86-64. Режим совместимости поддерживает бинарную совместимость с существующим 16-битным и 32-битным кодом. Long-режим не поддерживает устаревший реальный (real) режим или устаревший виртуальный (virtual-8086) режим, а также не поддерживает аппаратное переключение задач.

Поскольку 64-битный режим поддерживает 64-битное адресное пространство, то для его работы необходимо использовать новую 64-битную операционную систему. Существующие приложения при этом могут запускаться без перекомпиляции в режиме совместимости под операционной системой, работающей в 64-битном режиме. Для 64-битной адресации команд используется 64-битный регистр (RIP) и новый режим адресации с единым плоским (flat) адресным пространством и единым пространством для кода, стека и данных.

64-битный режим реализует поддержку расширенных регистров через новую группу префиксов команд REX.

В 64-битном режиме размер адресов по умолчанию 64 бита, однако реализации x86-64 могут иметь меньший размер. Размер операнда по умолчанию 32 бита. Для большинства инструкций размер операнда по умолчанию может быть перекрыт с использованием префикса команд типа REX.

64-битный режим обеспечивает адресацию данных относительно 64-битного регистра RIP. x86 архитектура обеспечивала адресацию относительно IP регистра только в командах передачи управления. RIP-относительная адресация повышает эффективность позиционно-независимого кода и кода, который адресует глобальные данные.

Несколько кодов операций (opcode) команд были переопределены для поддержки расширенных регистров и 64-битной адресации.

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

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

Устаревший (legacy) режим обеспечивает бинарную совместимость не только с 16- и 32-битными приложениями, но и с 16- и 32-битными операционными системами. Он включает в себя три режима:

  • Защищенный (protected) режим. Поддерживаются 16- и 32-битные программы с сегментной организацией памяти, поддержкой привилегий и виртуальной памяти. Адресное пространство — 4Гб.
  • Виртуальный (virtual-8086) режим. Поддерживает 16-битные приложения, запускаемые как задачи в защищенном режиме. Адресное пространство — 1Мб.
  • Реальный (real) режим. Поддерживает 16-битные программы с простой регистровой адресацией сегментированной памяти. Не поддерживается виртуальная память или привилегии. Доступно 1Мб памяти.

Устаревший (legacy) режим используется только при работе 16- и 32-битных операционных систем.

1.2. Достоинства архитектуры

Подчеркнем основные достоинства архитектуры AMD x86-64:

  • 64-битное адресное пространство.
  • Расширенный набор регистров.
  • Привычный для разработчиков набор команд.
  • Возможность запуска старых 32-битных приложений в 64-битной операционной системе.
  • Возможность использования 32-битных операционных систем.

1.3. Недостатки архитектуры

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

Но фактом является и то, что AMD x86-64 не привнесла ничего существенно нового. Нет принципиального повышения производительности. В среднем после перекомпиляции программы можно ожидать прирост производительности в пределах 5-15%.

2. Программная модель AMD64

Практически все современные операционные системы сейчас имеют версии для архитектуры AMD64. Так Microsoft предоставляет Windows XP 64bit, Windows Server 2003 64bit, Windows Vista 64bit. Крупнейшие разработчики UNIX систем также поставляют 64-битные версии, как например Linux Debian 3.1 x86-64. Однако это не означает, что весь код такой системы является полностью 64-битным. Часть кода ОС и многие приложения вполне могут оставаться 32-битными, т.к. AMD64 обеспечивает обратную совместимость.

64-битная версия Windows, к примеру, использует специальный режим WoW (Windows-on-Windows 64), который транслирует вызовы 32-битных приложений к ресурсам 64-битной операционной системы. Рассмотрим более подробно программную модель AMD64, доступную программисту в 64-битной системе Windows, для краткости называемой Win64.

Начнем с адресного пространства. Хотя 64-битный процессор теоретически может адресовать 16 экзабайт памяти (2^64), Win64 в настоящий момент поддерживает 16 терабайт (2^44). Этому есть несколько причин. Текущие процессоры могут обеспечивать доступ лишь к 1 терабайту (2^40) физической памяти. Архитектура (но не аппаратная часть) может расширить это пространство до 4 петабайт (2^52). Однако в любом случае, необходимо огромное количество памяти для страничных таблиц, отображающих память (см. таблицу 3).

Общее адресное пространство процесса

Адресное пространство, доступное 32-битному процессу

2Гб (3Гб, если система загружена с ключом /3GB)

4Гб, если приложение скомпилировано с ключом /LARGEADDRESSAWARE (2Гб иначе)

Адресное пространство, доступное 64-битному процессу

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *