|
|
Компьютеры - Математический сопроцессор - Устройство FPU22 января 2011
Оглавление: 1. Математический сопроцессор 2. Сопроцессоры 3. Устройство FPU
Модуль операций с плавающей запятой представляет собой стековый калькулятор, работающий по принципу обратной польской записи. Перед операцией аргументы помещаются в LIFO-стек, при выполнении операции необходимое количество аргументов снимается со стека. Результат операции помещается в стек, где может быть использован в дальнейших вычислениях или может быть снят со стека для записи в память. Также поддерживается и прямая адресация аргументов в стеке относительно вершины.
Форматы данных
Внутри FPU числа хранятся в 80-битном формате с плавающей запятой, для записи же или чтения из памяти могут использоваться:
- Вещественные числа в трёх форматах: коротком, длинном и расширенном.
- Двоичные целые числа в трёх форматах: 16, 32 и 64 бита.
- Упакованные целые десятичные числа числа длина максимального числа составляет 18 упакованных десятичных цифр.
FPU также поддерживает специальные численные значения:
- Денормализованные вещественные числа числа, которые меньше минимального нормализованного числа. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение.
- Бесконечность, возникает при делении на нуль ненулевого значения, а также при переполнениях. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение.
- нечисло). Различают два вида нечисел:
- SNaN сигнальные нечисла. Сопроцессор реагирует на появление этого числа в регистре стека возбуждением исключения недействительной операции. Сопроцессор не формирует сигнальных чисел. Программисты формируют такие числа преднамеренно, чтобы возбудить в нужной ситуации исключение.
- QNaN спокойные нечисла. Сопроцессор может формировать спокойные нечисла в качестве реакции на определённые исключения, например число вещественной неопределённости.
- Нуль в формате с плавающей запятой, нуль также считается специальным значением.
- Неопределённости и неподдерживаемые форматы. Существует много битовых наборов, которые можно представить в расширенном формате вещественного числа. Для большинства их значений формируется исключение недействительной операции.
Регистры
В FPU можно выделить три группы регистров:
- Стек процессора: регистры R0..R7. Размерность каждого регистра: 80 бит.
- Служебные регистры
- Регистр состояния процессора SWR информация о текущем состоянии сопроцессора. Размерность: 16 бит.
- Управляющий регистр сопроцессора CWR управление режимами работы сопроцессора. Размерность: 16 бит.
- Регистр слова тегов TWR контроль за регистрами R0..R7 Размерность: 16 бит.
- Регистры указателей
- Указатель данных DPR. Размерность: 48 бит.
- Указатель команд IPR. Размерность: 48 бит.
Система команд сопроцессора
Система включает около 80 команд. Их классификация:
- Команды передачи данных
- Вещественные данные
- Целочисленные данные
- Десятичные данные
- Загрузка констант, log2, lg, ln)
- Обмен
- Условная пересылка
- Команды сравнения данных
- Вещественные данные
- Целочисленные данные
- Анализ
- С нулём
- Условное сравнение
- Арифметические команды
- Вещественные данные: сложение, вычитание, умножение, деление
- Целочисленные данные: сложение, вычитание, умножение, деление
- Вспомогательные арифметические команды
- Трансцендентные команды
- Тригонометрия: синус, косинус, тангенс, арктангенс
- Вычисление логарифмов и степеней
- Команды управления
- Инициализация сопроцессора
- Работа со средой
- Работа со стеком
- Переключение режимов
Просмотров: 5201
|