Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 76

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 70 71 72 73 74 75 < 76 > 77 78 79 80 81 82 .. 528 >> Следующая

ячейки памяти, команды FSTCW/FNSTCW пересылают содержимое этого регистра
в память. Данные команды используются для изменения режима работы FPU:
маскирования определенных флагов, перемены способа округления и точности
представления результата.
Команды FCLEX/FNCLEX сбрасывают в состояние "0" признаки ES, SF, РЕ, UE,
ОЕ, ZE, DE, IE в регистре FPSR, а так же бит В. Значение поля ТОР и кодов
условий СО-СЗ в этом регистре сохраняются неизменными.
Команды FSTENV/FNSTENV, FLDENV, FSAVE, FRSTOR используются для пересылки
содержимого регистров FPU в память и обратно. Обычно эти процедуры
используются при переключении задач, и адресуемым сегментом служит SS
(сегмент стека). При выполнении команд FSTENV/FNSTENV производится запись
в память содержимого регистров FPSR, FPCR, TW, FIP, FDP. Команда FLDENV
загружает содержимое этих регистров из памяти, начиная с указанной в
команде ячейки памяти. Размещение содержимого регистров FPU в памяти для
этих команд показано на рис. 2.19 и 2.20, где Ах - адрес младшего байта
содержимого регистра FPCR, который задается операндом m14byte или
m28byte. Когда процессор работает в реальном режиме или в режиме
виртуального 8086, регистры FIP, FDP содержат 20-разрядный физический
адрес команды и операнда. При работе в защищенном режиме в этих регистрах
хранятся относительный адрес (содержимое EIP и эффективный адрес ЕА) и
селекторы (содержимое соответствующих сегментных регистров). Объем
памяти, используемой при выполнении команд FSTENV, FLDENV, составляет 14
байт при 16-разрядной адресации и 28 байт при 32-разрядной (часть байтов
не используется).
Команды FSAVE/FNSAVE дополнительно пересылают в память содержимое всех
восьми 80-разрядных арифметических регистров, которое располагается после
содержимого регистра FDP (рис. 2.19, 2.20), начиная с содержимого вершины
стека ST(0). Используемый объем памяти при этом возрастает на 80 байт по
сравнению с командами FSTENV/ FNSTENV. Команда FRSTOR восстанавливает
содержимое всех регистров FPU, загружая его из памяти.
После выполнения команд FSTENV/FNSTENV, FSAVE/FNSAVE, содержимое
регистров FPU принимает такое же значение, как после команд FINIT/FNINIT.
Команды FINCSTP и FDECSTP увеличивают и уменьшают на единицу значение
поля ТОР в регистре FPSR, меняя, таким образом, физический номер регистра
ST(0)- вершины стека (см. рис. 2.16). При этом содержимое регистров
данных и значения полей tag в регистре TW не изменяются.
Команда FFREE освобождает адресуемый регистр ST(i), устанавливая для него
в регистре TW значение поля tag i = 11 (пустой).
СИСТЕМА КОМАНД ОПЕРАЦИИ НАД ЧИСЛАМИ С ПЛАВАЮЩЕЙ ТОЧКОЙ
а) 15 0 б) 15 0
FPCR Ах FPCR Ах
FPSR Ах + 2 FPSR Ах + 2
TW Ах + 4 TW Ах +4
FIP EIP Ах + 6 FIP Адрес команды А15-0 Ах +
6
_ CS (селектор) Ах + 8 _ А19-16 | 0 | Код
операции Ах + 8
FDP ЕА Ах + 10 FDP Адрес операнда А15-0 Ах +
10
DS или другие (селектор) Ах + 12 А19-16
000000000000 Ах + 12
ST (0), 10 байтов Ах + 14 ST (0), 10 байтов
Ах + 14

ST (7), 10 байтов Ах + 84 ST (7), 10 байтов
Ах + 84
Рис. 2.19. Размещение содержимого регистров FPU в памяти при 16-раз
рядной адресации: для защищенного режима (а), для реального режима и
режима виртуального 8086 (б)
а)
FIP
FDP
31 16 15 0
Резервировано FPCR Ах
Резервировано FPSR Ах + 4
Резервировано TW Ах + 8
EIP Ах + 12
00000 | Код операции CS (селектор) Ах + 16
ЕА Ах+ 20
Резервировано DS или другие (селектор) Ах+ 24
ST (0), 10 байтов Ах+ 28

ST (7), 10 байтов
Ах + 98
б)
FIP
FDP
31 16 15 0
Резервировано FPCR Ах
Резервировано FPSR Ах + 4
Резервировано TW Ах + 8
Резервировано Адрес команды А15-0 Ах + 12
0000 | Адрес команды А31-16 0 | Код операции Ах + 16
Резервировано Адрес команды А15-0 Ах+ 20
0000 | Адрес команды А31-16 0100 0000 0000 Ах+ 24
ST (0), 10 байтов Ах+ 28

ST (7), 10 байтов
Ах + 98
Рис. 2.20. Размещение содержимого регистров FPU в памяти при 32-разряд-
ной адресации: для защищенного режима (а), для реального режима и режима
виртуального 8086 (б)
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Команда FNOP не выполняет каких-либо операций. Поступление команды
WAIT(FWAIT) также не реализует каких-либо операций. Однако эта команда
проверяет значения признаков в регистре FPSR и реализует обработку
соответствующих исключений FPU, если установлены единичные значения
немаскированных признаков, аналогично тому, как это выполняют системные
команды с префиксом F.
2.5. СИСТЕМА КОМАНД: ОПЕРАЦИИ ММХ
В процессорах Pentium был впервые введен блок, предназначенный для
обработки данных по принципу SIMD (Single Instruction Multiple Data: Одна
Команда - Много Данных). Реализация этого принципа позволяет при помощи
одной команды обработать несколько единиц однотипной информации. Такая
технология обработки данных получила название ММХ (Multi-Media Extension)
- "мультимедийное расширение", так как она позволяет существенно повысить
Предыдущая << 1 .. 70 71 72 73 74 75 < 76 > 77 78 79 80 81 82 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed