Тема 6.1 Арифметическая обработка данных
Арифметическая обработка числовых данных обычно выполняется с использованием математического сопроцессора (FPU – Floating Point Unit, NPR – Numeric PRocessor), который сначала выполнялся в виде отдельной микросхемы (i8087 – i80387), а начиная с процессора i80486DX встраивается в состав основного процессора. Сопроцессор называется так потому, что может работать параллельно с процессором после инициализации. Языки высокого уровня используют его непосредственно, а ассемблер порождаетESCкоманды. Независимоот наличиясопроцессора, выполнение командFPUможет бытьосуществленотремя способами: 1. С использованием библиотеки альтернативной математики: считается, что сопроцессор отсутствует и выполнение команд FPU моделируется на уровне операций основного процессора. 2. С использованием библиотеки эмулятора: автоматически определяется наличие сопроцессора, и если он есть, то выполняет команды FPU, а иначе их выполнение эмулируется (моделируется на уровне микро-операций) основным процессором. 3. При отсутствии математического сопроцессора возникает прерывание и выполнение программы прекращается. Первый способ– самый медленный и сейчаспрактически не применяется. Второй способ не всегда совместим с некоторыми резидентными программами (одни и те же прерывания используются для эмулятораирезидентныхпрограмм). Третийспособ самый быстрыйи сейчасявляетсяосновным. Назначение математического сопроцессора Расширение вычислительных возможностей основного процессора – выполнение арифметических операций над целыми и вещественными числами с точностью до 18 десятичных разрядов, вычисление основных математических функций (экспоненты, логарифмы и тригонометрические) и т. д. Применение сопроцессора повышает производительность вычислений в сотни раз.
Типы данных математического сопроцессора Сопроцессор поддерживает 7 типов данных: три целых (16 бит – Word Integer, 32 бит – Short Integer и 64 бит– Long Integer), 80-битные двоично-десятичные целые (Packed Decimal) и три формата с плавающей запятой, представленые в табл. 2. 4.
Сопроцессор выполняет все вычисленя в 80-битном раширенном формате, а 32-битный и 64битный форматы используются для обмена данными с основным процессором и памятью. Кроме обычных чисел сопроцессор использует несколько специальных данных, получаемых при выполнении операций:
Регистры математического сопроцессора Сопроцессор предоставляет для хранения и обработки данных восемь дополнительных 80битных регистров R0–-R7, организованных в виде закольцованного аппаратного стека ST(0) – ST(7), вершина которого обозначается ST, ST(0) или TOP, а более глубокие регистры ST(1) – ST(7). Так, например, если ST = R5, то ST(1) = R6, ST(2) = R7, ST(3) = R0 и т. д. Кроме того, сопроцессор использует пять вспомогательных регистров: 1. Регистр управления CR – задает режим обработки данных: маскирование ошибок (некорректная операция, деление на 0, переполнение и т. д. ), точность обработки (расширенная, двойная, одинарная), способы округления (к ближайшему числу, к нулю, к +∞ или к -∞ ).
2. Регистр состояния SR – содержит: флаги особых случаев, возникающих в результате выполнения операций (IE - некорректная операция, DE - денормализованный операнд, ZE – деление на ноль, OE – переполнение, UE – антипереполнение, PE – неточный результат); флаги условий, возникающие при операциях сравнения; поле указателя вершины стека ST или TOP; бит B занятости сопроцессора. 3. Регистр тегов TW – содержит двухбитовое поле для каждого из восьми числовых регистров сопроцессора TW(i) ST(i)
11не инициализировано 4. Регистр указателя команды FIP – содержит адрес последней выполненной команды. 5. Регистр указателяоперандаDIP– содержит адресоперанда последней выполненнойкоманды. Два последних регистра используются обработчиком исключений при анализе вызвавшей его команды. При программировании обработки выражений в сопроцессоре они представляются в виде польской инверсной записи (ПОЛИЗ или RPN – Reversed Poland Notation). Любое выражение преобразуетмя к постфиксному виду (бесскобочная запись). Примеры:
Expression EndP
Code EndS
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|