8.2 Состав модуля fpu
Модуль FPU содержит:
восемь 80-битных регистров для хранения данных с плавающей запятой;
48-битовый регистр указателя команд FPU;
48-битовый регистр указателя данных FPU;
16-битовый регистр тэгов;
16-битовый управляющий регистр;
16-битовый регистр состояния FPU;
регистр кода операции FPU.
Регистры данных FPU
Каждый 80-разрядный регистр данных FPU хранит расширенное вещественное число в формате, указанном на рисунке 8.2. Эти восемь регистров имеют свои собственные имена R0-R7.
Стек регистров
Основной особенностью FPU является то, что все восемь 80-разрядных регистров данных образуют стек. Однако в стеке регистры именуются относительными именами ST(0)-ST(7), в зависимости от глубины стека, на которой они находятся в данный момент. Регистр ST(0) всегда является вершиной стека и допускает сокращённое именование ST. Номер конкретного регистра R0-R7, который в данный момент находится на вершине стека, т.е. является регистром ST, указывается в 3-битовом поле TOP, находящимся в регистре состояния FPU. К регистрам R0 – R7 нельзя обращаться напрямую, по именам, но если процессор поддерживает расширение ММХ, то мантиссы, находящиеся в этих регистрах, становятся доступны через MMX‑регистры ММ0 – ММ7.
При помещении данных в стек (загрузке данных) регистров значение поля TOP декрементируется, а затем операнд помещается в регистр, находящийся на вершине стека, т.е. ST. Если перед выполнением команды помещения данных в стек поле TOP равно 0, вершина стека циклически сдвигается к регистру R7. Если загрузка данных в стек регистров приведёт к перезаписи несохранённых в нём данных, т.е. произойдёт переполнение стека и будет сгенерирована исключительная ситуация.
При выталкивании данных из стека (сохранении данных) регистров данные копируются из регистра ST в указанный операнд, а затем поле TOP инкрементируется. Если перед выполнением команды выталкивания значение поле TOP равно 7, вершина стека циклически сдвигается к регистру R0.
При выполнении команд с плавающей запятой их операнды хранятся в 80-битных регистрах в расширенном формате с двойной точностью (временный формат). При сохранении результата операции в памятьFPU автоматически преобразовывает его из расширенного формата в целое или длинное целое число, а также в короткое или длинное вещественное число. Модули ALU и FPU могут обмениваться значениями с плавающей запятой только через оперативную память. Поэтому перед вызовом команды с плавающей запятой её операнд всегда должен находиться в памяти. При этом FPU загружает число из памяти в свой стек регистров, выполняет над ним операцию и сохраняет результат обратно в память.
Регистры специального назначения
FPU имеет 6 регистров специального назначения (рис.8.3).
Регистр состояния SW содержит слово состояния FPU:
Бит 15: В – занятость FPU – этот флаг существует для совместимости с i8087, и его значение всегда совпадает с битом ES.
Бит 14: С3 – условный флаг 3.
Биты 13 – 11: ТОР – число от 0 до 7, показывающее, какой из регистров данных R0 – R7 в настоящий момент является вершиной стека.
Бит 10: С2 – условный флаг 2.
Бит 9: С1 – условный флаг 1.
Бит 8: С0 – условный флаг 0.
Бит 7: ES – общий флаг ошибки – равен 1, если произошло хотя бы одно немаскированное исключение.
Бит 6: SF – ошибка стека. Если С1 = 1, произошло переполнение (команда пыталась писать в непустую позицию в стеке), если С1 = 0, произошло антипереполнение (команда пыталась считать число из пустой позиции в стеке).
Бит 5: РЕ – флаг неточного результата – результат не может быть представлен точно.
Бит 4: UE – флаг антипереполнения – результат слишком маленький.
Бит 3: ОЕ – флаг переполнения – результат слишком большой.
Бит 2: ZE – флаг деления на ноль – выполнено деление на ноль.
Бит 1: DE – флаг денормализованного операнда — выполнена операция над денормализованным числом.
Бит 0: IE – флаг недопустимой операции – произошла ошибка стека (SF = 1) или выполнена недопустимая операция.
Биты С0 – С3 употребляются так же, как и биты, состояния в основном процессоре, их значения отражают результат выполнения предыдущей команды и используются для условных переходов.
Биты 0 – 5 отражают различные ошибочные ситуации, которые могут возникать при выполнении команд FPU.
Регистр управления CW содержит следующие биты:
Биты 15 – 13: зарезервированы.
Бит 12: «IC» – управление бесконечностью (поддерживается для совместимости с 8087 и 80287 – вне зависимости от значения этого бита + > ‑.
Биты 11 – 10: «RC» – управление округлением.
Биты 9 – 8: «PC» – управление точностью.
Биты 7 – 6: зарезервированы.
Бит 5: «РМ» – маска неточного результата.
Бит 4: «UM» – маска антипереполнения.
Бит 3: «ОМ» – маска переполнения.
Бит 2: «ZM» – маска деления на ноль.
Бит 1: «DM» – маска денормализованного операнда.
Бит 0: «IM» – маска недействительной операции.
Биты RC определяют способ округления результатов команд FPU до заданной точности:
00 – округление к ближайшему числу;
01 – округление к отрицательной бесконечности;
10 – округление к положительной бесконечности;
11 – округление к нулю.
Биты PC определяют точность результатов команд FADD, FSUB, FSUBR, FMUL, FDIV, FDIVR и FSQRT:
00 – одинарная точность (32-битные числа);
01 – зарезервировано;
10 – двойная точность (64-битные числа);
11 – расширенная точность (80-битные числа).
Биты 0 – 5 регистра CW маскируют соответствующие исключения – если маскирующий бит установлен, исключения не происходит, а результат вызвавшей его команды определяется правилами для каждого исключения специально.
Регистр тегов TW содержит восемь двухразрядных тегов – по одному тегу для каждого регистра данных (рис.8.4). В тегах содержится информация о признаке хранимых в каждом регистре данных.
Двухразрядный тег может иметь одно из четырёх значений:
00 – в регистре разрешённое число (valid);
01 – в регистре ноль (zero);
10 – в регистре неразрешённое, бесконечное или денормализованное число (invalid, infinity, или denormalized);
11 – в регистре нет значения (empty).
Регистры‑указатели FIP и FDP содержат адрес последней выполненной команды (кроме FINIT, FCLEX, FLDCW, FSTCW, FSTSW, FSTSWAX, FSTENV, FLDENV, FSAVE, FRSTOR и FWAIT) и адрес ее операнда соответственно и используются в обработчиках исключений для анализа вызвавшей его команды.
Вопросы для самопроверки
Перечислите стандарты представления чисел с плавающей запятой.
Раскройте понятия нормализации и денормализации числа.
Перечислите способы кодирования чисел и специальных значений.
Каков состав модуля FPU?
- Предисловие
- Глава 1. Общие сведения о микропроцессорах
- 1.1 Классификация микропроцессоров
- 1.2 Характеристики микропроцессоров
- 1.2.1 Тактовая частота
- 1.2.2 Архитектура процессора
- 1.2.3 Технологический процесс производства
- 1.2.4 Частота системной шины
- 1.2.5 Размер кэша
- 1.3 Типы архитектур микропроцессоров
- 1.4 Структурная схема микропроцессоров
- 1.4.1 Микропроцессор Фон-Неймана
- 1.4.2 Конвейер
- 1.4.3 Зависимость между частотой и количеством ступеней конвейера
- 1.5 Представление информации в эвм
- 1.5.1 Двоичное представление целых чисел
- 1.5.2 Представление символьной информации
- Глава 2. Архитектура микропроцессоров ia-32
- 2.1 Состав и функции регистров
- 2.1.1 Основные регистры
- 2.1.2 Регистры дополнительных функциональных модулей
- 2.2 Типы адресации
- 2.3 Система команд
- 2.3.1 Классификация команд
- 2.3.2 Формат команды
- 2.3.3 Однобайтовые команды
- 2.3.4 Непосредственно заданные операнды
- 2.3.5 Команды с регистровыми операндами
- 2.3.7 Команды с операндами, расположенными в памяти
- Глава 3. Организация многоуровневой памяти
- 3.1 Принцип построения многоуровневой памяти
- 3.2 Организация кэш-памяти
- 3.3 Протоколы когерентности памяти микропроцессоров
- 3.4 Страничная организация памяти
- Глава 4. Режимы работы процессоров ia-32
- 4.1 Обзор режимов работы
- 4.2 Реальный режим адресации
- 4.3 Защищённый режим
- 4.3.1 Дескрипторные таблицы
- 4.3.2 Дескрипторные регистры
- 4.3.3 Дескриптор
- 4.3.4 Односегментная модель памяти
- 4.3.5 Многосегментная модель памяти
- Глава 5. Страничная организация памяти в процессорах ia‑32
- 5.1 Каталог страниц
- 5.2 Таблица страниц
- 5.3 Страничная переадресация
- 5.4 Диспетчер виртуальных машин системы Microsoft Windows
- Глава 6. Архитектура процессоров с параллелизмом уровня команд
- 6.1 Подходы к использованию ресурса транзисторов в микропроцессорах
- 6.2 Суперскалярные процессоры и процессоры с длинным командным словом
- 6.3 Зависимости между командами, препятствующие их параллельному исполнению
- 6.4 Предварительная выборка команд и предсказание переходов
- 6.5 Условное выполнение команд в vliw-процессорах
- 6.6 Декодирование команд, переименование ресурсов и диспетчеризация
- 6.7 Исполнение команд
- 6.8 Завершение выполнения команды
- 6.9 Направления развития архитектуры процессоров с параллелизмом уровня команд
- Глава 7. Мультитредовые микропроцессоры
- 7.1 Основы мультитредовой архитектуры
- 7.2 Выявление тредов
- 7.3 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков управления программы
- 7.3.1 Мультитредовая модель выполнения программы
- 7.3.2 Мультитредовые программы
- 7.3.3 Аппаратные средства мультитредовой архитектуры
- 7.3.4 Преимущества мультитредовой архитектуры
- 7.4 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков данных программы
- 7.5 Специфика мультитредовых моделей распараллеливания
- Глава 8. Модуль обработки вещественных чисел
- 8.1 Представление чисел с плавающей запятой
- 8.2 Состав модуля fpu
- Глава 9. Основы 64-разрядной архитектуры
- 9.1 Состав и назначение регистров микропроцессора ia-64
- 9.2 Особенности архитектуры epic
- 9.3 Архитектура x86-64
- 9.4 Структура одноядерного процессора
- 9.5 Многоядерные процессоры
- 9.6 Зачем нужны “лишние” разряды?
- Глава 10. Современные 64-разрядные микропроцессоры корпораций Intel и amd
- 10.1 Архитектура Intel Core 2
- 10.1.1 Intel Wide Dynamic Execution
- 10.1.2 Intel Intelligent Power Capability
- 10.1.3 Intel Advanced Smart Cache
- 10.1.4 Intel Smart Memory Access
- 10.1.5 Intel Advanced Digital Media Boost
- 10.1.6 Логическая схема процессора
- 10.2 Архитектура Intel Core i7
- 10.2.1 Технология Hyper-Threading в архитектуре Nehalem
- 10.2.2 Иерархия кэш-памяти в архитектуре Nehalem
- 10.3 Хронология развития семейств микропроцессоров с архитектурой Nehalem
- 10.4 Архитектура amd Athlon 64
- 10.4.1 Ядро процессора
- 10.4.3 Контроллер памяти
- 10.4.4 Контроллер HyperTransport
- 10.5 Архитектура amd k10
- 10.4.1 Технология amd Memory Optimizer Technology
- 10.5.2 Ядро процессора
- 10.5.3 Предвыборка данных и инструкций
- 10.5.4 Выборка из кэша
- 10.5.5 Предсказание переходов и ветвлений
- 10.5.6 Процесс декодирования
- 10.5.7 Диспетчеризация и переупорядочение микроопераций
- 10.5.8 Выполнение микроопераций
- 10.5.9 Технологии энергосбережения
- 10.5.10 Шина HyperTransport 3.0
- 10.5.11 Семейство процессоров Barcelona
- 10.5.12 Семейство процессоров Phenom
- Глава 11. Технологии, поддерживаемые современными микропроцессорами
- 11.1 Технологии тепловой защиты
- 11.1.1 Технология Thermal Monitor
- 11.1.2 Технология Thermal Monitor 2
- 11.1.3 Режим аварийного отключения
- 11.2 Технологии энергосбережения
- 11.2.1 Технология Enhanced Intel SpeedStep
- 11.2.2 Технология Cool'n'Quiet
- 11.3 Технология расширенной памяти
- 11.4 Технология антивирусной защиты
- 11.5 Технология виртуализации
- 11.6 Реализация технологий в современных микроархитектурах
- 11.6.2 Em64t – NetBurst
- 11.6.3 Intel Core
- 11.6.4 Intel Atom
- 11.6.5 Nehalem
- 11.6.6 Xeon
- Глава 12. Графические микропроцессоры
- 12.1 Основные термины и определения
- 12.2 Технологии построения трёхмерного изображения
- 12.2.1 Технологии повышения реалистичности трехмерного изображения
- 12.3 Шейдерный процессор
- 12.4 Особенности современных графических процессоров
- Глава 13. Однокристальные микроконтроллеры
- 13.1 Общая характеристика микроконтроллеров
- 13.2 Микроконтроллеры семейства avr
- Почему именно avr?
- 13.3 Общие сведения об омк avr
- 13.4 Характеристики avr-микроконтроллеров
- Глава 14. Технология производства микропроцессоров
- 14.1 Особенности производства процессоров
- 14.2 Новые технологические решения
- 14.3 Технология производства сверхбольших интегральных схем
- I. Выращивание кристалла кремния
- II. Создание проводящих областей
- III. Тестирование
- IV. Изготовление корпуса
- V. Доставка
- 14.4 Перспективы производства сбис
- Англо-русский словарь терминов и аббревиатур
- Библиографический список
- Интернет-ссылки
- 350072. Краснодар, ул. Московская, 2, кор. А.