Программная архитектура 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 процентов.