Здавалка
Главная | Обратная связь

Режим совместимости.



Министерство образования и науки РФ

Московский государственный университет экономики,

Статистики и информатики (МЭСИ)

Кафедра автоматизированных систем обработки информации и управления

Доклад по дисциплине «ЭВМ и периферийные устройства» на тему: «Обзор архитектуры процессоров 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 Все права принадлежат авторам размещенных материалов.