Пятница, 18.07.2025, 03:24 Приветствую Вас Гость

On-line: Книги, учебники, статьи

Главная | Регистрация | Вход | RSS

Приложение 2. Справочник по командам и архитектуре Pentium(3)

Команды управления кэшированием

Внутренний кэш появился в процессоре, начиная с 486-ого. Процессоры 486 и Pentium имеют внутренний кэш первого уровня, Pentium Pro и Pentium II имеют уже и вторичный кэш.

INVDАннулирование данных в первичном КЭШе без обратной записи.
WBINVDОбратная запись модифицированных строк и аннулирование кэш-памяти.
INVLPG r/mАннулирование элемента таблицы трансляции TLB (TLB - буфер ассоциативной трансляции таблиц каталогов и страниц памяти).

Команды арифметического сопроцессора.

Описание работы арифметического сопроцессора см. [1,5]. Здесь мы коснемся основных положений работы арифметического сопроцессора.60

1. Арифметический сопроцессор работает со своим набором команд и своим набором регистров. Однако выборку команд сопроцессора осуществляет процессор.

2. Арифметический сопроцессор выполняет операции со следующими типами данных: целое слово (16 бит), короткое целое (32 бита), длинное слово (64 бита), упакованное десятичное число (80 бит), короткое вещественное число (32 бита), длинное вещественное число (64 бита), расширенное вещественное число (80 бит).

3. При выполнении операции сопроцессором, процессор ждет завершения этой операции. Другими словами, перед каждой командой сопроцессора ассемблером автоматически генерируется команда, проверяющая, занят сопроцессор или нет. Если сопроцессор занят, процессор переводится в состояние ожидания. Иногда программисту требуется вручную ставить команду ожидания (WAIT) после команды сопроцессора.

4. Сопроцессор имеет восемь 80-битных рабочих регистров, представляющих собой стековую кольцевую структуру. Регистры называются R0,R1, ... R7, но доступ к ним напрямую невозможен. Каждый регистр может занимать любое положение в стеке. Название стековых (относительных) регистров - ST(0), ST(1), ST(2), ST(3), ST(4), ST(5), ST(6), ST(7). Кроме того, имеется еще регистр состояния, по флагам которого можно, в частности, судить о результате выполненной операции. Регистр управления содержит в себе биты, влияющие на выполнение команд сопроцессора.

5. Регистр тэгов содержит 16 бит, описывающих содержание регистров сопроцессора: по два бита на каждый рабочий регистр. Тэг говорит о содержимом регистре данных. Вот значение тэгов: 00 - действительное ненулевое число, 01 - истинный нуль, 10 - специальные числа, 11 - отсутствие данных.

6. При вычислении с помощью команд сопроцессора большую роль играют исключения или особые ситуации. Типичной особой ситуацией является деление на 0. Биты особых ситуаций хранятся в регистре состояний. Учет особых ситуаций необходим для получения правильных результатов.

7. Список особых ситуаций.

  1. Неточный результат (округление).
  2. Недействительная операция.
  3. Деление на ноль.
  4. Антипереполнение (слишком маленький результат).
  5. Переполнение (слишком большой результат).
  6. Денормализованный операнд.

8. Регистр состояния.

  • 0-й бит, флаг недопустимой операции.
  • 1-й бит, флаг денормализованной операции.
  • 2-й бит, флаг деления на ноль.
  • 3-й бит, флаг переполнения.
  • 4-й бит, флаг антипереполнения.
  • 5-й бит, флаг неточного результата.
  • 6-й бит, ошибка стека.
  • 7-й бит, общий флаг ошибки.
  • 8,9,10-й, флаги условий.
  • 11,12,13-й, число, показывающее, какой регистр является вершиной.
  • 14-й бит, условный флаг.
  • 15-й бит, флаг занятости.

9. Регистр управления.

  • 0-й бит, маска недействительной операции.
  • 1-й бит, маска денормализованного операнда.
  • 2-й бит, маска деления на ноль.
  • 3-й бит, маска переполнения.
  • 4-й бит, маска антипереполнения.
  • 5-й бит, маска неточного результата.
  • 6,7-й бит, резерв.
  • 8-9-й биты, управление точностью.
  • 10,11-й биты, управление округлением.
  • 12-й, управление бесконечностью.
  • 13,14,15-й, резерв.

Команды передачи данных
FLD srcЗагрузить вещественное число в ST(0) (вершину стека) из области памяти. Область памяти может быть 32-, 64-, 80-битная.
FILD srcЗагрузить целое число в ST(0) из памяти. Область памяти может быть 16-, 32-, 64-битной.
FBLD srcЗагрузить BCD-число в ST(0) из 80-битной области памяти.
FLDZЗагрузить 0 в ST(0).
FLD1Загрузить 0 в ST(0).
FLDPIЗагрузить PI в ST(0).
FLDL2TЗагрузить LOG2(10) в ST(0).
FLDTL2EЗагрузить LOG2(e) в ST(0).
FLDLG2Загрузить LG(2) в ST(0).
FLDLN2Загрузить LN(2) в ST(0).
FST destЗапись вещественного числа из ST(0) в память. Область памяти 32-, 64- или 80-битная.
FSTP destЗапись вещественного числа из ST(0) в память. Область памяти 32-, 64- или 80-битная. При этом происходит выталкивание вершины из стека.
FBST destЗапись BCD-числа в память. Область памяти 80-битная.
FBSTP destЗапись BCD-числа в память. Область памяти 80-битная. При этом происходит выталкивание вершины из стека.
FXCH st(i) Обмен значениями вершины стека и регистра i.

Команды сравнения данных
FCOMСравнение вещественных чисел ST(0) и ST(1). Флаги устанавливаются, как при операции ST(0)-ST(1).
FCOM srcСравнение ST(0) с операндом в памяти. Операнд может быть 32- или 64-битным.
FCOMP srcСравнение вещественного числа в ST(0) с операндом с выталкиванием ST(0) из стека. Операнд может быть регистром и областью памяти.
FCOMPPСравнение ST(0) и ST(1) с двойным выталкиванием из стека.
FICOM srcСравнение целых чисел в ST(0) с операндом. Операнд может быть 16- или 32-битным.
FICOMP srcСравнение целых чисел в ST(0) с операндом. Операнд может быть 16- или 32-битной областью памяти или регистром. При выполнении операции происходит выталкивание ST(0) из стека.
FTSTПроверка ST(0) на нуль.
FUCOM ST(i)Сравнение ST(0) с ST(i) без учета порядков.
FUCOMP ST(i)Сравнение ST(0) с ST(i) без учета порядков. При выполнении операции происходит выталкивание из стека.
FUCOMPP ST(i)Сравнение ST(0) с ST(i) без учета порядков. При выполнении операции происходит двойное выталкивание из стека.
FXAMАнализ содержимого вершины стека. Результат помещается в биты С3-С0.
000 - неподдерживаемый формат.
001 - не число.
010 - нормализованное число.
011 - бесконечность.
100 - нуль.
101 - пустой операнд.
110 - денормализованное число.

Вход на сайт
Поиск
Календарь
«  Июль 2025  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей
Наш опрос
Как Вам удобнее??
Всего ответов: 341
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0