Режим совместимости.Стр 1 из 4Следующая ⇒
Министерство образования и науки РФ Московский государственный университет экономики, Статистики и информатики (МЭСИ) Кафедра автоматизированных систем обработки информации и управления Доклад по дисциплине «ЭВМ и периферийные устройства» на тему: «Обзор архитектуры процессоров x86-64» Руководитель: Самсонов И.И. Выполнил: студент Группы ДКА-201 Иванес Александр Москва – 2012
Содержание: 1. Описание архитектуры AMD64 1.1 Введение. 1.1.1 Особенности AMD64. 1.1.2 Регистры. 1.1.3 Набор инструкций. 1.2 Режимы работы. 1.2.1 Long-mode. 1.2.2 64-bit mode. 1.2.3 Режим совместимости. 1.2.4 Устаревший режим. 2. Модель памяти. 2.1. Организация памяти. 2.1.1 Виртуальная память. 2.1.2 Регистры сегмента. 2.1.3 Физическая память. 2.1.4 Управление памятью. 2.1.4.1 Управление памятью в режиме Long mode. 2.1.4.2 Управление памятью в устаревшем режиме. 3. Достоинства и недостатки архитектуры. 3.1. Достоинства. 3.2. Недостатки. 4. Программная модель AMD64. 5. Перенос приложений на AMD64. 6. Заключение. 7. Использованный материал.
Описание архитектуры AMD64 Введение.
Архитектура AMD x86-64 простое, но в то же время мощное обратно-совместимое расширение устаревшей промышленной архитектуры x86. Она добавляет 64-битное адресное пространство и расширяет регистровые ресурсы для поддержки большей производительности для перекомпилированных 64-битных программ, обеспечивая поддержку устаревшего 16-битного и 32-битного кода приложений и операционных систем без их модификации или перекомпиляции. Необходимость 64-битной x86 архитектуры определяется приложениями, которым необходимо большое адресное пространство. Это высокопроизводительные серверы, системы управления базами данных, CAD-системы и конечно игры. Такие приложения получат преимущество от 64-битного адресного пространства и увеличения количества регистров. Малое количество регистров, доступное в устаревшей x86 архитектуре ограничивает производительность в вычислительных задачах. Увеличенное количество регистров обеспечивает достаточную производительность для многих приложений. Особенности AMD64. Архитектура 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-битном режиме. Серым цветом показано отличие между режимами. Эти отличия представлены в колонке Register Extensions таблицы 1. Таблица 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-режима. Команды разбиты на несколько подмножеств: · Команды общего назначения (General purpose instructions). Это основные x86 целочисленные команды, используемые во всех программах. Большинство из них предназначены для загрузки, сохранения, обработки данных, расположенных в регистрах общего назначения или памяти. Некоторые из этих инструкций управляют потоком команд, обеспечивая переход к другому месту в программе. · 128-битные медиа-команды. Это SSE и SSE2 (streaming SIMD extension) команды, предназначенные для загрузки, сохранения, или обработки данных, расположенных, в основном, в 128-битных YMM/XMM регистрах. Они оперируют нижней частью YMM регистров и выполняют целочисленные или с плавающей точкой операции над векторными (упакованными) и скалярными типами данных. Поскольку векторные инструкции могут независимо выполнять одну операцию над множеством данных, они называются single-instruction, multiple-data (SIMD) командами. Они используются для высокопроизводительных медиа и научных приложений для обработки блоков данных. · 64-битные медиа-команды. Это multimedia extension (MMX) и AMD 3DNow! команды. Они сохраняют, восстанавливают и обрабатывают данные, расположенные в 64-битных MMX регистрах, которые отображаются в 80-битовых x87 регистрах с плавающей точкой. Подобно их 128-битным аналогам, описанным выше, они выполняют целочисленные и с плавающей точкой операции надо векторными (упакованными) и скалярными данными. Эти команды полезны в медиа приложениях, не требующих высокой точности. MMX команды используют математические операции не приводящие к вызову исключений. · x87 команды с плавающей точкой. Предназначены для работы с плавающей точкой в старых x87 приложениях. Они загружают, сохраняют или обрабатывают данные расположенные в 80-битовых x87 регистрах. Некоторые из этих команд соединяют два или более подмножества описанных выше команд. Например, это команды пересылки данных между регистрами общего назначения и XMM или MMX регистрами. Если команды соединяют два или более подмножества, то их описание применяется во всех подмножествах, к которым они применены. Режимы работы. Рассмотрим более подробно представленные в таблице 1 режимы работы, поддерживаемые архитектурой x86-64. В большинстве случаев размеры адресов и операндов могут быть перекрыты префиксом команды. Long Mode Это расширение устаревшего защищенного (protected) режима. Long-режим состоит из двух подвидов: 64-битный режим и режим совместимости. 64-битный режим поддерживает все новые возможности и регистровые расширения, введенные в x86-64. Режим совместимости поддерживает бинарную совместимость с существующим 16-битным и 32-битным кодом. Long-режим не поддерживает устаревший реальный (real) режим или устаревший виртуальный (virtual-8086) режим, а также не поддерживает аппаратное переключение задач. Bit Mode 64-Битовый режим работы – это подвид Long Mode – поддерживает все особенности 64-битовой виртуальной адресации и расширений регистров. Этот режим включается операционной системой на индивидуальном базовом сегменте кода. Поскольку 64-битный режим поддерживает 64-битное адресное пространство, то для его работы необходимо использовать новую 64-битную операционную систему. Существующие приложения при этом могут запускаться без перекомпиляции в режиме совместимости под операционной системой, работающей в 64-битном режиме. Для 64-битной адресации команд используется 64-битный регистр (RIP) и новый режим адресации c единым плоским (flat) адресным пространством и единым пространством для кода, стека и данных. Расширенные регистры.64-битный режим реализует поддержку расширенных регистров через новую группу префиксов команд REX. Эти расширения добавляют 8 регистров общего назначения (R8-R15), увеличение размера всех регистров общего назначение до 64 битов и добавляют 8 YMM/XMM регистров (YMM/XMM8-15). 64-битные адреса и операнды.В 64-битном режиме размер адресов по умолчанию 64 бита, однако реализации x86-64 могут иметь меньший размер. Размер операнда по умолчанию 32 бита. Для большинства инструкций размер операнда по умолчанию может быть перекрыт с использованием префикса команд типа REX. Адресация данных относительно регистра RIP.64-битный режим обеспечивает адресацию данных относительно 64-битного регистра RIP. x86 архитектура обеспечивала адресацию относительно IP регистра только в командах передачи управления. RIP-относительная адресация повышает эффективность позиционно-независимого кода и кода, который адресует глобальные данные. Коды операций.Несколько кодов операций (opcode) команд были переопределены для поддержки расширенных регистров и 64-битной адресации. Режим совместимости. Режим совместимости предназначен для выполнения в 64-битной операционной системе существующих 16-битных и 32-битных программ. Приложения запускаются в режиме совместимости с использованием 32- или 16-битного адресного пространства и могут иметь доступ к 4Гб виртуального адресного пространства. Префиксы команд могут переключать 16- и 32-битные адреса и размеры операндов. С точки зрения приложения, режим совместимости выглядит как устаревший защищенный режим x86, однако с точки зрения операционной системы (трансляция адресов, обработки прерываний и исключений) используются 64-битные механизмы.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|