Математический сопроцессор. Форматы данных FPU. Программная модель FPU.

Скачать презентацию на тему: "Математический сопроцессор. Форматы данных FPU. Программная модель FPU." с количеством слайдов в размере 20 страниц. У нас вы найдете презентацию на любую тему и для каждого класса школьной программы. Мы уверены, что наши слайды помогут найти вам свою аудиторию. Весь материал предоставлен бесплатно, в знак благодарности мы просим Вас поделиться ссылками в социальных сетях и по возможности добавьте наш сайт MirPpt.ru в закладки.

Нажмите для просмотра
Математический сопроцессор. Форматы данных FPU. Программная модель FPU.

1: Математический сопроцессор. Форматы данных FPU. Программная модель FPU. Исключения и интерфейс сопроцессора Физический факультет, ЭВУ и системы, 7 семестр,2010

2: Математический сопроцессор

3: Основные понятия

4: Схема взаимодействия центрального процессора и сопроцессора

5: Схема взаимодействия центрального процессора и сопроцессора

6: В случае отсутствия сопроцессора Прикладная программа использует инструкции FPU,но для этого ОС должна поддерживать эмуляцию сопроцессора. Эмулятор сопроцессора – это программа-обработчик прерывания от сопроцессора или исключения NM,которая должна «выловить» код операции сопроцессора, определить местонахождение данных и выполнить требуемые вычисления, использую целочисленную арифметику CPU. Понятно, что эмуляция будет выполняться медленней, чем те же действия выполняемые настоящим FPU. Для этого в регистре CR0 должны быть установлено сочетания флагов EM1,MP0.

7: Форматы данных FPU позволяет представлять следующие категории чисел Нули (положительный и отрицательный) – оба значения эквивалентны; Денормализованные конечные числа (положительные и отрицательные); Нормализованные конечные числа (положительные и отрицательные); Бесконечность (положительная и отрицательная)

8: Не-числа Кроме вещественных чисел (конечных нормализованных и денормализованных, нулей и бесконечности) регистры сопроцессора могут содержать не-числа NaN (Not a Number) четырех видов: -SNaN и SNaN – порядок 111…111, мантисса 1,0ххх…ххх (ненулевая). Эти сигнализирующие не-числа (signaling NaN) вызывают исключения сопроцессора, если с ними пытаются выполнить арифметические действия. -QNaN и QNaN – порядок 111…111, мантисса 1,1ххх…ххх (ненулевая). Эти «тихие» не-числа (quiet NaN) не вызывают исключений при арифметических операциях.

9: Не-числа могут определять такие случаи неопределённость (IND), возникает при комплексном результате (например, при вычислении квадратного корня из отрицательного числа) и в некоторых других случаях, недействительное значение (qNaN, sNaN) - может использоваться компилятором (для предотвращения использования неинициализированных переменных) или отладчиком, нуль - в формате с плавающей запятой, нуль также считается специальным значением.

10: Устройство FPU

11: Форматы чисел, поддерживаемых сопроцессором

12: Программная модель FPU

13: Программная модель сопроцессоров

14:

15: Старший байт регистра состояния содержит: Бит занятости B (бит 15), сигнализирующий, свободен ли сопроцессор (B0) или занят выполнением численной команды (B 1). Команды сопроцессора, которые используют регистровый стек, требуют, чтобы перед началом их выполнения сопроцессор не был занят. В FPU этот бит дублирует значение флага сигнализации особого случая. Поле TOS "Top-Of-the-Stack" (биты 11-13), которое содержит номер регистра, являющегося логической вершиной стека. При помещении в регистровый стек нового числа это значение уменьшается. Если это поле достигает значения 0, возможны две ситуации: произойдет заворачивание стека на регистры с большими номерами (т. е. R7) или, если заворачивание приведет к затиранию несохраненного значения, возникнет особый случай сопроцессора "переполнение стека". 4 бита кода условия (биты 14, 10, 9, 8), аналогичные флажкам состояния FLAGS у IA-32, отражающие результат арифметических операций. Эти флажки могут быть использованы для условных переходов.

16: Младший байт регистра состояния содержит флажки особых случаев сопроцессора: переполнение стека, потеря точности, потеря значащих разрядов, численное переполнение, деление на ноль, денормализация, недействительная операция. Если соответствующий особый случай возник и не был замаскирован (в слове управления), это приведет к генерации центральным процессором особого случая сопроцессора (16). Младший байт регистра состояния содержит флажки особых случаев сопроцессора: переполнение стека, потеря точности, потеря значащих разрядов, численное переполнение, деление на ноль, денормализация, недействительная операция. Если соответствующий особый случай возник и не был замаскирован (в слове управления), это приведет к генерации центральным процессором особого случая сопроцессора (16). Младшее слово регистра управления содержит биты масок особых случаев. Сопроцессор допускает индивидуальное маскирование особых случаев. Если тот или иной особый случай замаскирован, при возникновении соответствующей ситуации сопроцессор выполняет некоторые заранее определенные внутренние действия, которые зачастую приемлемы для большинства применений. Например, если замаскирован особый случай деления на ноль, то выполнение операции 85,32/0 даст результат . Старшее слово регистра управления содержит два поля: управление точностью PC (биты 8 и 9) и управление округлением RC (биты 10 и 11). Биты управления точностью можно использовать для понижения точности вычислений. По умолчанию используется расширенная точность (PC 112), можно также использовать двойную точность (PC 102) и одинарную точность (PC 002)

17: Регистр тегов содержит 8 тегов - признаков, характеризующих содержимое соответствующего численного регистра сопроцессора. Тег может принимать следующие значения: 00 - в регистре находится действительное число; 01 - нулевое число в регистре; 10 - недействительное число (бесконечность, денормализованное число, не-число); 11 - пустой регистр.

18: Сопроцессор использует теги, чтобы определить переполнение или опустошение стека. Если при помещении в стек очередного числа окажется, что декрементированный TOS указывает на непустой регистр (соответствующий тег не равен 112), сопроцессор сигнализирует о переполнении стека. Если при извлечении из стека числа окажется, что инкрементированный TOS указывает на пустой регистр (соответствующий тег равен 112), сопроцессор сигнализирует об опустошении стека. Сопроцессор использует теги, чтобы определить переполнение или опустошение стека. Если при помещении в стек очередного числа окажется, что декрементированный TOS указывает на непустой регистр (соответствующий тег не равен 112), сопроцессор сигнализирует о переполнении стека. Если при извлечении из стека числа окажется, что инкрементированный TOS указывает на пустой регистр (соответствующий тег равен 112), сопроцессор сигнализирует об опустошении стека.

19: Регистры математического сопроцессора

20: Используемая литература: Книга «Процессоры «Pentium 4,Athlon и Duron»»,авторы Михаил Гук, Виктор Юров Книга «Ассемблер. Учебник для ВУЗов», авторы Михаил Гук, Виктор Юров Книга «Архитектура ЭВМ»,автор Мюллер http://www. intuit. ru/department/hardware/csorg/8/2. htm http://ar-pc. ru/pc/200636/l soft-tlt. ru/programmsi1. html http://cs. njit. edu/sohn/cs650/

Скачать презентацию


MirPpt.ru