ПРЕДИСЛОВИЕ | 3 |
|
1. ПРОГРАММНАЯ МОДЕЛЬ MMX | 4 |
|
1.1. FPU и MMX регистры | 4 |
1.2. Новый формат представления данных | 6 |
1.3. Арифметика с насыщением | 7 |
1.4. Особые случаи | 8 |
1.5. Влияние префиксов на выполнение MMX-команд | 9 |
1.6. Определение MMX-технологии с помощью команды CPUID | 9 |
|
2. СИСТЕМА КОМАНД MMX | 10 |
|
2.1. Арифметические команды | 10 |
2.2. Команды сравнения | 11 |
2.3. Команды преобразования | 11 |
2.4. Команды логических операций | 11 |
2.5. Команды сдвига | 12 |
2.6. Команды переноса данных | 12 |
2.7. Команда EMMS | 12 |
|
3. ПРИМЕРЫ MMX-АЛГОРИТМОВ | 13 |
|
3.1. Билинейная интерполяция | 26 |
3.2. 3D-геометрия | 35 |
3.3. Закраска поверхности | 38 |
3.4. Преобразование цветового пространства RGB в цветовое |
пространство YUV | 45 |
3.5. Преобразование данных из формата 24-Bit True Color |
в формат 16-Bit High Color | 53 |
3.6. Наложение изображения на поверхность | 64 |
3.7. Наложение изображений с использованием альфа-канала | 67 |
|
4. СПРАВОЧНИК ПО СИСТЕМЕ КОМАНД MMX | 73 |
|
4.1. Синтаксис команд | 73 |
4.2. Формат команд | 73 |
4.3. Обозначения, используемые при описании команд | 74 |
4.4. Перечень MMX-команд | 76 |
|
5. ПРОЦЕССОРЫ СЕМЕЙСТВА P5 | 123 |
|
5.1. Новые возможности | 123 |
5.2. Конвейер процессоров семейства P5 | 124 |
5.2.1. Блокировка генерации адреса | 727 |
5.2.2. Обращение к регистрам разного размера | 128 |
5.2.3. Оптимизация предвыборки команд | 128 |
5.2.4. Предсказание ветвлений | 128 |
5.2.5. Выравнивание данных | 129 |
5.2.6. Правила спаривания двух команд | 130 |
5.2.7. Оптимизация для FPU | 133 |
|
6. ПРОЦЕССОРЫ СЕМЕЙСТВА P6 | 136 |
|
6.1. Новые возможности | 136 |
6.2. Конвейер процессоров семейства P6 | 136 |
6.2.1. Предсказание ветвлений | 141 |
6.2.2. Обращение к регистрам разного размера | 142 |
6.2.3. Обращение к памяти | 144 |
|
7. НОВЫЕ КОМАНДЫ P5 И P6 | 146 |
|
7.1. Новые команды процессоров семейства P5 | 146 |
7.2. Новые команды процессоров семейства P6 | 155 |
|
8. СТРАНИЧНОЕ ПРЕОБРАЗОВАНИЕ В ПРОЦЕССОРАХ P5 И P6 | 163 |
|
8.1. Управление страничным преобразованием | 163 |
8.2. Таблицы страничного преобразования | 163 |
8.2.1. Преобразование линейного адреса для 4-KB страниц | 164 |
8.2.2. Преобразование линейного адреса для 4-MB страниц | 165 |
8.2.3. Элементы таблиц страничного преобразования | 166 |
8.2.4. Смешивание 4-KB и 4-MB страниц | 169 |
8.3. Базовый адрес каталога страниц | 169 |
8.4. Расширение физического адреса | 169 |
8.4.1. Преобразование линейного адреса с расширенной адресацией |
для 4-KB страниц | 170 |
8.4.2. Преобразование линейного адреса с расширенной адресацией |
для 2-MB страниц | 172 |
8.4.3. Элементы таблиц страничного преобразования с расширенной |
адресацией | 173 |
|
9. ВИРТУАЛЬНЫЕ ПРЕРЫВАНИЯ | 175 |
|
10. МОНИТОРИНГ ПРОИЗВОДИТЕЛЬНОСТИ | 180 |
|
11. СИСТЕМНЫЙ РЕЖИМ | 188 |
|
11.1. Прерывание S-режима (SMI) | 188 |
11.2. Переключение между S-режимом и другими режимами | 189 |
11.2.1. Вход в S-режим | 189 |
11.2.2. Выход из S-режима | 190 |
11.3. Память SMRAM | 190 |
11.3.1. Область сохранения контекста | 191 |
11.3.2. Кэширование SMRAM | 193 |
11.4. Работа процессора в S-режиме | 194 |
11.5. Прерывания и исключения в S-режиме | 195 |
11.6. Обработка NMI в S-режиме | 196 |
11.7. Идентификатор S-режима | 196 |
11.8. Рестарт HALT | 197 |
11.8.1. Выполнение команды HLT в S-режиме | 198 |
11.9. Переопределение адреса SMBASE | 198 |
11.10. Рестарт команд ввода-вывода | 199 |
|
Приложение А. Спаривание целочисленных команд | 200 |
Приложение Б. Спаривание FPU-команд | 208 |
Приложение В. Декодирование команд в микрооперации | 211 |
Приложение Г. Формат регистра CR4 | 223 |
Приложение Д. Кодирование MMX-команд | 224 |