Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Архитектура процессора x64

Архитектура AMD64 (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 обеспечивает обратную совместимость.

Читать еще:  Архитектура ansi sparc

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).

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:

В чем разница между х86 и х64?

Многие пользователи часто задаются вопросами: «Какую систему мне ставить?», «В чем разница между х86 и х32?» и т. д. Давайте же разложим все по полочкам.

х86 — это архитектура процессора с одноимённым набором команд, впервые реализованная в процессорах компании Intel. Название образовано от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). Через какое-то время цифровые обозначения новых процессоров стали сменяться именами. Так публика узнала о Pentium и Celeron, но платформа x86 не изменялась вплоть до 2000-х годов, но об этом чуточку попозже.

В начале своего пути х86 архитектура, которая была впервые представлена на i8086, применялась на 16-разрядных процессорах (может хранить 2^16 уникальных значений), имела 16-битные инструкции и внутреннюю 16-битную шину, позже добавили еще внешнюю 8-разрядную шину данных. Дальше события развивались довольно просто — производители увеличивали скорость, количество транзисторов, набор команд и т. д., и так вплоть до выхода 80386(i386) — процессора, который на то время знаменовал собой революцию в мире процессоров x86. Это был первый 32-разрядный процессор, который мог использовать кэш-память, расположенную на внешнем чипе.
Вплоть до анонса AMD64 (аппаратная платформа) архитектура не сильно менялась.
После выхода AMD64 и Intel 64 х86 она подверглась серьезным изменениям.
Процессоры архитектуры поддерживают два режима работы: Long Mode («длинный» режим) и Legacy Mode («наследственный», режим совместимости с 32-битным x86).
Основные достоинства архитектуры x86-64:

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

«Что такое x32?»

Это 32-битная операционная система, которая ставится на 32-разрядные процессоры. Если брать в качестве примера ОС Microsoft, то первая x32 была Windows 95, которая в полной мере использовала возможности данного процессора и архитектуры (x86). Главным недостатком x32 является невозможность поддержки более чем 4 ГБ ОЗУ. Примечательно, что система в состоянии оперировать только 3 ГБ памяти и 1 ГБ просто проваливается.
Еще существует довольно распространённая ошибка: когда пишут совместимость программ, то указывают x86, подразумевая 32-битную платформу. Это не совсем корректно и только вводит в заблуждение. Лучше всего указывать x86_32bit или x86_64bit. Либо сокращать до интуитивно понятных x32 или x64.

что собой представляет x64?

x86_64bit — это 64-битная операционная система, которая ставится на 64-разрядные процессоры с архитектурой x86-64. «64-битный лейбл» звучит возбуждающе, но в практическом плане это всего лишь хитрый маркетинговый трюк, скрывающий не только достоинства, но и недостатки. В принципе, ее главным достоинством была и остаётся возможность воспринимать до 32 ГБ ОЗУ, что существенно увеличивает производительность. Еще одним плюсом данной ОС есть то, что под ней процессоры на архитектуре х86-64 (Celeron, Core 2, Core i3, Core i5, Core i7) задействуют весь потенциал кристалла. Это возможно благодаря режиму Long Mode. Недостатком же есть увеличение потребляемой оперативной памяти программами, например, тот же Apache на 32-бит потреблял 20 МБ ОЗУ, а уже на 64-бит ОС — приблизительно 50 МБ.

wiki.vspu.ru

портал образовательных ресурсов

Архитектуры AMD 64 (K8) и Stars

AMD64 (также x86-64 или x64) — 64-битная архитектура микропроцессора и соответствующий набор инструкций, разработанные компанией AMD. Это расширение архитектуры x86 с полной обратной совместимостью. Набор инструкций x86-64 в настоящее время поддерживается процессорами AMD Athlon 64, Athlon 64 FX, Athlon 64 X2, Turion 64, Opteron, последними моделями Sempron. Интересно, что этот набор инструкций был поддержан основным конкурентом AMD — компанией Intel под названием EM64T или IA-32e в поздних моделях процессоров Pentium 4, а также в Pentium D, Pentium Extreme Edition, Celeron D, Core 2 Duo и Xeon. Корпорация Microsoft использует для обозначения этого набора инструкций термин x64.

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

Long Mode

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

Legacy Mode

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

Особенности архитектуры

Разработанный компанией AMD набор инструкций x86-64 (позднее переименованный в AMD64) — расширение архитектуры Intel IA-32 (x86-32). Основной отличительной особенностью AMD64 является поддержка 16-ти 64-битных регистров общего назначения (против 8-и 32-битных в x86-32), 64-битных арифметических и логических операций над целыми числами и 64-битных виртуальных адресов.

Архитектура x86_64 имеет

Opteron (кодовое название Sledgehammer или K8) — первый микропроцессор фирмы AMD, основанный на 64-битной технологии AMD64 (также называемой x86-64). AMD создала этот процессор в основном для применения на рынке серверов, поэтому существуют варианты Opteron для использования в системах с 1-16 процессорами.

В июне 2004 года в Top500 суперкомпьютеров десятое место занял Dawning 4000A — китайский суперкомпьютер построенный на процессорах Opteron. В ноябре 2005 он опустился на 42 место, в связи с появлением более производительных конкурентов. Тогда в ноябрьском Top500 10 % суперкомпьютеров были построены на базе процессоров AMD64 Opteron. Для сравнения, на базе процессоров Intel EM64T Xeon были построены 16.2 % суперкомпьютеров. Две ключевые особенности

Двумя важными технологиями воплощёнными в процессоре Opteron являются: Прямая (без эмуляции) поддержка 32-битных x86 приложений без потери скорости Прямая (без эмуляции) поддержка 64-битных x86-64 приложений (линейная адресация более 4 ГБ ОЗУ)

Первая технология примечательна тем, что во время анонса процессора Opteron единственным 64-битным процессором с заявленной поддержкой 32-битных x86 приложений был Intel Itanium. Но Itanium выполнял 32-битные приложения со значительной потерей скорости.

Вторая технология, сама по себе не так примечательна, так как основные производители RISC процессоров (SPARC, DEC, HP, IBM, MIPS и другие) имели 64-битные решения уже много лет. Но совмещение в одном продукте этих 2-х свойств, напротив, принесло Opteron признание, так как он предлагал доступное и экономичное решение для запуска существующих x86 приложений с последующим переходом на более перспективные 64-битные вычисления.

Процессоры Opteron имеют интегрированный контроллер памяти DDR SDRAM. Это позволило существенно уменьшить задержки при обращении к памяти и исключить необходимость в отдельном чипе северного моста на материнской плате.

В мае 2005 года AMD представила первый «многоядерный» процессор Opteron. В настоящее время термин «многоядерный» компания AMD использует для обозначения «двухъядерных» процессоров; в каждом процессоре Opteron размещено 2 отдельных процессорных ядра. Это фактически удваивает вычислительную мощность доступную каждому процессорному разъёму на материнских платах, поддерживающих эти процессоры.

Одним из “топовых” процессоров AMD сегодня считается — Athlon X2 6000+ на ядре Windsor под сокет AM2. Этот процессор содержит два ядра Athlon 64, объединённых на одном кристалле с помощью набора дополнительной логики. Ядра имеют в своём распоряжении двухканальный контроллер памяти, базирующийся на Athlon 64 степпинга E, и в зависимости от модели, от 512 до 1024 КБ КЭШа 2-го уровня на каждое ядро. Athlon 64 X2 поддерживают набор инструкций SSE3 (которые ранее поддерживались только процессорами компании Intel), что позволило запускать с максимальной производительностью код, оптимизированный для процессоров Intel. Эти улучшения не уникальны для Athlon 64 X2 и так же имеются в релизах процессоров Athlon 64, построенных на ядрах Venice и San Diego. AMD официально начала поставки Athlon 64 X2 на выставке Computex 1 июня 2005 года.

Основным преимуществом, которое даёт двуядерные процессоры Athlon 64 X2 является возможность разделения запущенных программ на несколько одновременно выполняемых потоков. Способность процессора выполнять одновременно несколько программных потоков называется параллелизм на уровне потоков (thread-level parallelism или (TLP)). При размещении двух ядер на одном кристале, Athlon 64 X2 обладает двойным TLP по сравнению с одноядерным Athlon 64 при той же скорости. Необходимость в TLP зависит от конкретной ситуации в большей степени и в некоторых ситуациях она просто бесполезна. Большинство программ написаны с расчётом на работу в однопоточном режиме, и поэтому просто не могут задействовать вычислительные мощности второго ядра. Программы, написанные с учётом работы в многопоточном режим и способные использовать вычислительные мощности второго ядра, включают в себя множество приложений для обработки музыки и видео. Имея два ядра, Athlon 64 X2 обладает увеличенным количеством транзисторов на кристалле. Процессор Athlon 64 X2 с 1МБ КЭШа 2-го уровня имеет 233.2 миллиона транзисторов [1], в отличие от Athlon 64, имевшего всего 114 миллиона транзисторов [2]. Такие размеры требуют использования для производства более тонкого технологического процесса, который позволяет добиться выхода необходимого количества исправных процессоров с одной кремневой пластины. Athlon 64 X2 построен на ядрах: Toledo; Manchester; Windsor по 90 нм техпроцессу. Совсем недавно компания AMD официально представила свою новую платформу для настольных ПК под кодовым названием AMD Spider.

Платформа Spider

Состав платформы Spider

Основным компонентом данной платформы является процессор линейки AMD Phenom, совместно с чипсетом семейства AMD 7-Series.

Платформа AMD Spider: общие характеристики

Представляя вниманию широкой публике новые технологии, AMD делает акцент именно на платформенном характере инноваций. Ключевым компонентом платформы Spider являются многоядерные процессоры AMD Phenom (вплоть до 4-ядерных), выполненные с соблюдением норм 65 нм техпроцесса и предназначенные для работы с системными платами, оснащёнными разъёмом Socket AM2+. Помимо этого, в состав платформы Spider входит новое поколение чипсетов AMD 7 Series для создания системных плат с поддержкой технологий CrossFireX и AMD OverDrive, а также графика семейства ATI Radeon HD 3800 с поддержкой Microsoft DirectX 10.1.

Схема платформы AMD Spider

Если отбросить в сторону многословие пресс-релизов, основной инновацией, реализованной в платформе AMD Spider, можно назвать значительное повышение параметра “производительность на ватт”, главным образом, за счёт энерго-эффективного дизайна 65 нм процессоров AMD Phenom, 65 нм чипсетов AMD 7-Series и 55 нм графических чипов семейства ATI Radeon HD 3800. Наряду с этим, платформа AMD Spider обладает поддержкой ряда специфических технологий экономии энергии: ATI PowerPlay, Cool’n’Quiet 2.0, Microsoft DirectX 10.1, HyperTransport 3.0 и PCI Express 2.0. В частности, технология Cool’n’Quiet 2.0 позволяет снижать энергопотребление процессоров AMD Phenom, обладающих TDP 95 Вт, до средних 32 Вт в бытовых и средних 29 Вт в коммерческих приложениях. В то же время технология AMD CoolCore, реализованная в чипсетах AMD 7-Series, обеспечивает работу ядер процессора на разных частотах и, соответственно, снижение энергопотребления, при этом TDP чипсетов в среднем составляет порядка 10-12 Вт.

Читать еще:  Ошибка формата потока данных

Другая инновация платформы AMD Spider – значительная её масштабируемость, беспрецедентная для решений на базе процессоров AMD. Так, системные платы на базе чипсетов AMD 7-Series, благодаря технологии ATI CrossFireX и поддержке до 42 линий PCI Express, обладают возможностью работы с тремя или четырьмя графическими картами ATI Radeon HD 3800. С точки зрения микроархитектуры процессоров AMD, новые чипы 4-ядрные чипы Phenom для настольных ПК, выполненные на базе архитектуры Stars (ядро Agena), являются “ближайшими родственниками” новых 4-ядерных серверных процессоров AMD Opteron на базе ядра Barcelona.

В полной аналогии с ядром Barcelona, архитектура Stars обладает 128-битным контроллером памяти с поддержкой до DDR2-1066, который также обладает возможностью работы в 2-канальном 64-битном режиме для независимого выполнения операций записи и чтения памяти. Физическое адресное пространство при этом увеличилось до 48 бит, а поддержка памяти до 256 Тб.

Каждое из четырёх ядер процессора Phenom обладает собственным 64 Кб собственной кэш-памяти L1 для инструкций и 64 Кб кэш-памяти L1 для данных, что в сумме составляет 512 Кб кэш-памяти L1 на процессор. Суммарный объём кэш-памяти L2 составляет 2 Мб, по 512 Кб на каждое ядро. Помимо этого, архитектуры Barcelona и Stars подразумевают наличие 2 Мб кэш-памяти L3. В отличие от кэш-памяти уровней L1 и L2, эксклюзивных для каждого ядра, кэш-память L3 динамически распределяется между всеми ядрами.

Среди ключевых характеристик, присущих новым 4-ядерным процессорам Phenom, следует отметить следующие ключевые функциональные возможности: Наличие нового планировщика задач с плавающей запятой, теперь поддерживающего 36 новых 128-битных операций Поддержка 128-битных операций SSE, появившихся в дополнение к возможностям прежней 64-битной архитектуры Возможность обработки двух операций SSE и одного SSE переноса за такт Буфер модуля выборки инструкций стал 32 байтным (ранее 16 байт) Модуль предсказания ветвлений с 512-ходовым предсказанием непрямых ветвлений Производительность кэша данных увеличена с одной 64-битной загрузки за такт до одной 128-битной загрузки за такт Производительность кэша данных L2 — контроллера памяти увеличена с 64-битной загрузки на такт до 128-битной загрузки за такт Реализация шины HyperTransport 3.0 позволила увеличить пропускную способность до 20,8 Гб/с Реализация технологии AMD Virtualization Technology с функцией быстрой индексации Rapid Page Indexing

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

x86, x32, x64 — Что это всё значит?

В описании многих программ и операционных систем часто указаны странные слова, начинающиеся с английской буквы «крестик», и продолженные цифрами.

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

Откуда есть пошло

Вам ещё не надоел этот подзаголовок? 🙂

В далёком 1978 году был выпущен первый в мире 16-разрядный микропроцессор, Intel 8086 . В последующие два десятилетия компанией Intel было создано множество моделей процессоров, которые объединяло две вещи:

1. Полная совместимость с 8086 на уровне команд 2. Число 86 в конце названия

Из этих двух признаков и было выведено наименование x86 . Это не название архитектуры процессора, нет. Это лишь указание на то, что процессор поддерживает все команды, которые поддерживал старичок 8086, умеет исполнять 16-разрядный код и может работать в так называемом реальном режиме доступа к памяти, а не только в защищённом.

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

Тем не менее, Intel соизволила дать архитектуре своих 32-битных процессоров официальное название: IA-32 . К тому времени на горизонте уже замаячила 64-битная архитектура, которую вполне логично было назвать IA-64 . Intel так и сделала. Как потом стало ясно, зря.

И куда пришло

Ещё один замыливший глаза подзаголовок.

Первые в мире серийно выпускаемые 64-битные процессоры продавались под маркой Intel Itanium. Архитектуре этой серии дали официальное название IA-64. Предназначались они только для серверов. Возможно, в дальнейшем предполагалось выпускать варианты Itanium’ов и для домашних ПК, но если такие планы и были, то сбыться не могли. А всё почему?

Программы, собранные специально для IA-64, работали на этих процессорах замечательно, все преимущества 64 бит были в наличии. Вот только мало их было, таких программ, до смешного мало. Зато для IA-32 их было уже очень много. Никто не станет закупать процессоры, на которых нужные программы не будут работать, а разработчики большинства нужных программ ленивы, и не станут переписывать свои творения под архитектуру, которой никто не пользуется. Получается замкнутый круг, разорвать который может лишь разработчик этого нового процессора, добавив возможность выполнять на нём не только новые, но и старые программы. Потому ведь и с 8086 совместимость сохраняется до сих пор.

Но с IA-64 вышла неудача. Она кардинально отличалась от IA-32 (настолько, что ARM и IA-32 на её фоне кажутся близнецами), и для совместимости со старым ПО использовала режим эмуляции. Очень, очень медленный режим. Достаточно медленный, чтобы даже самые толерантные к медленному софту компании думали трижды перед покупкой сервера на базе Itanium. Было и множество других проблем: слишком горячие (требуется мощное охлаждение), слишком прожорливые (в плане электроэнергии), и так далее. Серия провалилась с треском.

И вот мы подошли к ключевой точке этой истории, с которой и началась подлинная чехарда названий. В 2003 году давний конкурент Intel, компания AMD представила собственный вариант 64-битного процессора. В отличие от Itanium’ом, их архитектура не содержала чего-то кардинально нового, это была та же IA-32, но дополненная новыми командами, и работающая с 64-битными числами. Точно так же сама Intel когда-то расширила x86, превратив её в IA-32.

AMD, не долго думая, дала своей новой архитектуре название AMD64 . Ей сопутствовал большой коммерческий успех, ведь 32-битные программы выполнялись так же быстро, как на IA-32. Правда, памяти потребляли гораздо больше, но это было не так важно.

Intel в этот раз не стала изобретать велосипед, а просто взяла AMD64, и с некоторыми упрощениями реализовала в своих новых процессорах.

Но появилась проблема: как называть эту архитектуру в документации? IA-64 — занято провальными Itanium. AMD64 — для Intel несолидно. И понеслась фантазия.

Един во многих лицах

Сама Intel меняла названия новой архитектуры несколько раз. Разработчики ПО и журналисты вносили ещё большую путаницу — редко кто использовал последнее официальное название, часто встречались старые или даже взятые с потолка. По итогам прошедших лет мы имеем:

AA-64 AMD64 x86-64 x86_64 x64 IA-32e EM64T Intel64 Что-то мне подсказывает, что список неполный.

На сегодня официальным названием является Intel64 . Таким образом, главная причина смены названий всё ещё не решена: и AMD64, и Intel64 вводят пользователя в заблуждение. Он ведь не обязан знать, что эти две архитектуры совместимы в обе стороны. Вполне логично предположить, что программа для AMD64 будет работать лишь на процессорах AMD, а на Intel не будет. И наоборот. Но по факту это не так.

Кто есть кто

Вся статья задумана ради этого списка 🙂

x86 — совместимые с Intel 8086 , но обычно имеют в виду IA-32 IA-32, x86-32 — 32-битное подмножество x86 i386 — совместимый с Intel 80386 , (первым 32-битным для IBM PC), синоним IA-32 i486 — совместимый с Intel 80486 , подмножество IA-32 i586 — совместимый с Pentium , подмножество IA-32 i686 — совместимый с Pentium Pro , подмножество IA-32 AMD64, Intel64, x86-64, x86_64, x64, AA-64, IA-32e, EM64T — 64-битное подмножество x86 IA-64 — 64-битная архитектура линейки Intel Itanium, процессоры совместимы с программами IA-32, но не наоборот

На этом пока всё. Подписывайтесь на канал, ставьте лайки, делитесь в соцсетях — будет стимул писать дальше.

Есть вопрос, замечание, предложение, возмущение? Не держите в себе, оставьте комментарий!

Ссылка на основную публикацию
Adblock
detector