архитектура 64 процессоров

advertisement
Программная архитектура
64х битных процессоров.
Доклад подготовили:
Дарья Колесникова
Панов Григорий
Введение
•
В рамках архитектуры вычислительной техники
под термином "64-битный" понимают 64-битные целые
и другие типы данных, имеющих размер 64 бита.
•
Под "64-битными" системами могут пониматься
64-битные архитектуры микропроцессоров (например,
EM64T, IA-64) или 64-битные операционные системы
(например, Windows XP Professional x64 Edition).
•
Можно говорить о компиляторах, генерирующих
64-битный программный код.
История 64-битных систем
•
•
•
•
•
•
1961: IBM выпускает суперкомпьютер IBM 7030 Stretch, в котором
используются 64-битные слова данных, 32-битные или 64-битные
машинные инструкции.
1985: Cray выпускает UNICOS - первую 64-битную реализацию
операционной системы Unix.
1993: DEC выпускает 64-битную Unix-подобную операционную систему
DEC OSF/1 AXP для своих систем, построенных на архитектуре Alpha.
1994: Intel объявляет о своих планах по разработке 64-битной
архитектуры IA-64 - преемника их 32-битных процессоров IA-32. Дата
выпуска назначена на 1998-1999 годы
1995: Sun запускает 64-битный процессор семейства SPARC
UltraSPARC. HAL Computer Systems, подчиненная Fujitsu, запускает
рабочие станции, созданные на основе 64-битного процессора
SPARC64 первого поколения. IBM выпускает микропроцессоры A10 и
A30, а также 64-битные процессоры PowerPC AS. IBM также выпускает
64-битное обновление для системы AS/400, способное
преобразовывать операционную систему, базы данных и приложения.
1998: Sun выпускает Solaris 7 с полной 64-битной поддержкой
UltraSPARC.
•
•
•
•
•
2001: Intel наконец запускает линейку 64-битных процессоров, которые теперь
получают название Itanium и рассчитаны на высокопроизводительные серверы.
Проект не соответствует ожиданиям из-за многочисленных задержек при
выпуске IA-64 на рынок. Кроме того, Microsoft также выпускает Windows XP 64Bit Edition для архитектуры IA-64 семейства Itanium, хотя в ней сохраняется
возможность запускать 32-битные приложения при помощи прослойки WoW64.
2004: В ответ на коммерческий успех AMD, Intel признается, что они
разрабатывали клон расширений AMD64, которому дали название IA-32e. Intel
также выпускает обновленные версии семейств процессоров Xeon и Pentium 4
с поддержкой новых команд.
2005: 31 января Sun выпускает Solaris 10 с поддержкой процессоров AMD64 /
Intel 64. 30 апреля Microsoft выпускает Windows XP Professional x64 Edition для
процессоров AMD64 / Intel 64.
2006: Sony, IBM и Toshiba начинают выпуск 64-битного процессора Cell для
PlayStation 3, серверов, рабочих станций и других устройств. Microsoft
выпускает Windows Vista с включенной 64-битной версией для процессоров
AMD64 / Intel 64, которая поддерживает 32-битную совместимость. Все
Windows-приложения и компоненты являются 64-битными, однако многие из
них имеют 32-битные версии, включенные в систему в виде плагинов в целях
совместимости.
2009: Как и Windows Vista, Windows 7 компании Microsoft включает полную 64битную версию для процессоров AMD64 / Intel 64, и на большинство новых
компьютеров по умолчанию устанавливается 64-битная версия. Выходит
операционная система компании Apple Mac OS X 10.6, "Snow Leopard" которая
имеет 64-битное ядро и предназначена для процессоров AMD64 / Intel 64,
однако по умолчанию эта система устанавливается только на некоторые из
последних моделей компьютеров компании Apple. Большинство приложений,
поставляемых с Mac OS X 10.6, теперь также являются 64-битными.
Архитектура Intel 64 (AMD64)
•
Рассматриваемая архитектура Intel 64 простое, но в то же время
мощное обратно совместимое расширение устаревшей
промышленной архитектуры x86. Она добавляет 64-битное адресное
пространство и расширяет регистровые ресурсы для поддержки
большей производительности перекомпилированных 64-битных
программ. Архитектура обеспечивает поддержку устаревшего 16битного и 32-битного кода приложений и операционных систем без их
модификации или перекомпиляции.
•
Отличительной особенностью Intel 64 является поддержка
шестнадцати 64-битных регистров общего назначения (в x86-32
имелось восемь 32-битных регистров). Для адресации новых
регистров для команд введены "префиксы расширения регистра", для
которых был выбран диапазон кодов 40h-4Fh, использующихся для
команд INC <регистр> и DEC <регистр> в 32- и 16-битных режимах.
Команды INC и DEC в 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:
• 64-битное адресное пространство;
• расширенный набор регистров;
• привычный для разработчиков набор команд;
• возможность запуска старых 32-битных приложений в 64битной операционной системе;
• возможность использования 32-битных операционных систем.
64-битные операционные
системы
•
Практически все современные операционные
системы сейчас имеют версии для архитектуры Intel 64.
• 64-битная версия Windows использует специальный
режимWoW64 (Windows-on-Windows 64), который
транслирует вызовы 32-битных приложений к ресурсам
64-битной операционной системы.
• Далее в статье мы будем рассматривать только 64-
битные операционные системы семейства Windows.
WoW64
Windows-on-Windows 64-bit (WoW64) - подсистема
операционной системы Windows, позволяющая запускать 32битные приложения на всех 64-битных версиях Windows.
Подсистема WoW64 не поддерживает следующие
программы:
• программы, скомпилированные для 16-разрядных
операционных систем;
• программы режима ядра, скомпилированные для 32разрядных операционных систем.
Существуют различия WoW64 в зависимости от архитектуры
процессора. Например, 64-битная версия Windows
разработанная для процессора Intel Itanium 2 использует
WoW64 для эмуляции x86 инструкций. Такая эмуляция
весьма ресурсоемка по сравнению с WoW64 для
архитектуры Intel 64, так как происходит переключение с 64битного режима в режим совместимости, при выполнении
32-битных программ.
Общие сведения о 64разрядной среде
64-разрядная среда включает в себя оборудование и программные
компоненты. Сам по себе переход на 64-разрядное оборудование дает определенное
повышение быстродействия, однако качественный рост достигается только при
совместном применении 64-разрядного оборудования и программного обеспечения.
64-разрядное оборудование
Возможности 64-разрядной обработки применяются в специализированных
приложениях уже десятки лет. Однако их широкое применение на компьютерах на
базе Intel началось лишь в последние годы. На сегодняшний день львиную долю
продаваемых серверов составляют именно 64-разрядные серверы. Однако на
большинстве компьютеров, используемых в качестве серверов под управлением ОС
Windows, по-прежнему применяется 32-разрядная архитектура. Преобладающее
применение 32-разрядных серверов накладывает определенные ограничения на
быстродействие, надежность и масштабируемость приложений с высокими
потребностями в ресурсах.
64-разрядное программное обеспечение
Преимущества 64-разрядного оборудования доступны в полной мере только при
наличии соответствующего программного обеспечения, использующего все его
возможности. Даже совместимое 32-разрядное программное обеспечение при
установке на 64-разрядном компьютере позволит использовать лишь малую часть его
преимуществ.
Преимущества 64-разрядного
оборудования и программного
обеспечения
Возможности адресации
памяти
Физическая память
•
Система с 32-разрядной архитектурой поддерживает непосредственную адресацию
не более 4 ГБ адресного пространства. Система с 64-разрядной архитектурой под
управлением 64-разрядного выпуска ОС Windows Server поддерживает до 1024 ГБ
физической и адресуемой памяти.
Виртуальная память
•
Виртуальная память равномерно распределяется на виртуальное адресное
пространство для приложений и операционной системы. 32-разрядные
приложения, работающие в 64-разрядной среде, также могут использовать
преимущества расширенного адресного пространства виртуальной памяти.
Например, хотя размер виртуальной памяти для 32-разрядных приложений попрежнему ограничен 4 ГБ, устраняется необходимость совместного использования
этого пространства приложением и операционной системой. Это ведет к
эффективному увеличению объема виртуальной памяти.
Непрерывная память
•
Низкое быстродействие 32-разрядных систем зачастую вызвано не нехваткой
доступной памяти, а отсутствием достаточно больших блоков непрерывной памяти.
В 64-разрядных системах поддерживается практически неограниченный объем
адресного пространства для процессов пользовательского режима.
Более эффективная параллельная обработка
•
На сервере с 32-разрядной архитектурой поддерживается использование не более 32 ЦП.
Усовершенствования параллельной обработки и архитектуры шины в 64-разрядных средах
обеспечивают поддержку до 64 процессоров и практически линейную масштабируемость при
добавлении каждого дополнительного процессора.
Более быстрая архитектура шин
•
В 64-разрядной архитектуре поддерживается большее число регистров общего назначения,
которые обеспечивают повышение быстродействия приложений. Наличие большего числа
регистров позволяет осуществлять меньшее число операций записи постоянных данных в память и
считывания их из памяти после выполнения нескольких инструкций. Кроме того, в 64-разрядной
среде обеспечивается более быстрый вызов функций, поскольку в регистре обеспечивается
передача в функцию до четырех аргументов одновременно.
Повышенная безопасность:
Защита от переполнения буфера
•
Переполнение буфера данных происходит при его заполнении объемом данных, превышающим
конструктивно заложенный. В 64-разрядных выпусках Windows Server первые параметры вызовов
процедур передаются в регистрах. Это позволяет снизить вероятность переполнения буфера,
поскольку правильные значения устанавливаются в регистрах, а переменные и адреса
выравниваются в стеке.
Предотвращение выполнения данных
•
64-разрядные процессоры производства AMD и Intel обеспечивают аппаратную поддержку
предотвращения выполнения данных (DEP).
Расширенная
масштабируемость
В 64-разрядной среде серверы баз данных могут
использовать не только практически неограниченное
адресное пространство виртуальной памяти, но и гораздо
больший объем физической памяти.
Кроме того, обеспечивается существенное уменьшение
числа серверов приложений, необходимых для
обслуживания баз пользователей, поскольку в 64разрядной среде снижается частота циклического
выполнения рабочих процессов.
Это позволяет уменьшить число потерянных
подключений, повысить эффективность ввода-вывода и
расширить возможности пользователя.
!!! 64-разрядная среда
оптимально подходит не для
всех ситуаций. У нее есть ряд
недостатков. !!!
Недостатки 64-разрядной
среды
•
Обычно 64-разрядные серверы используют больший объем виртуальной
памяти, чем 32-разрядные. В 64-разрядной среде память резервируется
посегментно в соответствии с числом процессоров. Как правило, для 4процессорного сервера следует использовать не менее 5 ГБ виртуальной
памяти, а для 8-процессорного — не менее 6 ГБ.
•
Возможность доступа 64-разрядных приложений к расширенному
пространству физической и виртуальной памяти влечет за собой
укрупнение таблиц адресации и, соответственно, большие затраты
ресурсов на обработку данных. В результате этого небольшие или
повторяющиеся задачи могут выполняться несколько медленнее, чем в
32-разрядной среде.
•
В настоящее время широко распространена практика переназначения
бездействующего оборудования сервера. Если встает выбор между
приобретением нового 64-разрядного оборудования и переназначением
старых 32-разрядных серверов, рекомендуется рассмотреть возможность
сокращения эксплуатационных расходов в будущем за счет внедрения
64-разрядных серверов и программ.
Преимущества и недостатки 64битной архитектуры Windows 7
Преимущества 64-разрядной системы
Разрядность может быть 32 или 64 бита, но на экране обе версии Windows 7
выглядят одинаково. Возможности систем также идентичны: в комплекте те же
дополнительные программы, например Windows Media Player или Paint. Однако
"под капотом" все же есть существенные различия.
•
•
Увеличенная рабочая скорость. С 64-битной версией Windows компьютер
может обрабатывать за единицу времени в два раза больше данных, чем с 32битной. При этом он использует расширенные возможности 64-разрядных
процессоров, которые за один такт способны обрабатывать 64 бита данных (8
байт). Поэтому программы, оптимизированные для 64-битных ОС, умеют
работать быстрее, чем их аналоги для процессоров, обрабатывающих всего
32 бита (4 байта) за один такт.
Больше оперативной памяти. 32-битные версии Windows могут
использовать максимум 4 Гб памяти, причем не вся она доступна
программам. Например, 1 Гб занимает сама операционная система, к тому же
до 1 Гб (в зависимости от ПК) резервируется для видеопамяти. Так что для
самих программ остается не более 2 Гб. Если они "прожорливы", памяти
может не хватить.
Требования к компьютеру
•
Процессор. Важнейшим необходимым условием для
работы 64-битной операционной системы является процессор с 64битной архитектурой. Изготовитель процессоров AMD называет эту
технологию AMD64, а его конкурент Intel - EM64T.
•
Процессоры с 64-битной архитектурой уже стали скорее
правилом, чем исключением. Примерно с 2006 года большинство
новых компьютеров и ноутбуков оснащается именно ими, хотя
многие все еще работают под 32-битной Windows. Узнать, какой
именно процессор установлен на вашем ПК, можно с помощью
программы CPU-Z (см. рис. внизу).
•
Оперативная память. 64-битная Windows имеет смысл
лишь в том случае, если у компьютера не меньше 4 Гб
оперативной памяти.
•
В остальном 64-битные версии ОС не предъявляют особых
требований к аппаратной части (например, к HDD или видеокарте)
по сравнению с 32-битными.
Недостатки 64-разрядной
системы
• Нужны новые драйверы. Все устройства требуют для 64-
битной Windows 7 соответствующих драйверов (аналоги для
32-битной ОС работать не будут). Для современных устройств
это обычно не проблема, но для устаревших моделей многие
производители не разрабатывают 64-битные версии
драйверов. Поэтому прежде чем переходить на 64-битную
Windows, зайдите на веб-страницу производителя устройства
и убедитесь, что для вашего оборудования доступна 64-битная
версия драйвера.
• Требуется больше памяти. Многие структуры данных в 64битных программах имеют размер 8 байт (64 бит). Поэтому
программы занимают на 10-20% больше места на жестких
дисках, чем соответствующие 32-битные версии с 4-байтными
структурами. Потребность в оперативной памяти для 64битного ПО также повышается - примерно на 15 процентов.
Download