Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛК_МашЗавЯП_А4.doc
Скачиваний:
158
Добавлен:
10.06.2015
Размер:
19.94 Mб
Скачать
      1. Команды управления кэшированием

        Команда

        Описание

        INVD

        INValiDate cache – недостовеность кэш-памяти. Алгоритм:

        • Очистка кэш-памяти первого уровня.

        • Генерация сигнала на. очистку кэш-памяти второго уровня.

        WBINVD

        Write Back and INValiDate cache - обратная запись и недостовеность кэш-памяти. Алгоритм:

        • Очистка кэш-памяти первого уровня.

        • Записать содежимое кэш-памяти второго уровня в основую память.

        • Очистить кэш-памяти второго уровня.

        INVLPG адрес

        INValiDate PaGe – недостовеностьэлементабуфераассоциативнойтрансляциитаблицкаталоговистраницпамятиTLB (Translation Lookaside Buffer).Алгоритм:

        • Просмотреть элементы буфера TLB на соответствие его элементов адресу в команде.

        • Если соответстчие выявлено, то пометить элемент как недостоверный.

    1. Сопроцессор с плавающей точкой

Здесь мы коснемся основных положений работы арифметического сопроцессора.

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

Арифметический сопроцессор выполняет операции со следующими типами данных:

  • целое слово (16 бит),

  • короткое целое (32 бита),

  • длинное слово (64 бита),

  • упакованное десятичное число (80 бит),

  • короткое вещественное число (32 бита),

  • длинное вещественное число (64 бита),

  • расширенное вещественное число (80 бит).

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

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

Регистр состояния.По его флагам можносудить о результате выполненной операции. Биты регистра состояния:

  • 0-й бит, флаг недопустимой операции.

  • 1-й бит, флаг денормализованной операции.

  • 2-й бит, флаг деления на ноль.

  • 3-й бит, флаг переполнения.

  • 4-й бит, флаг антипереполнения.

  • 5-й бит, флаг неточного результата.

  • 6-й бит, ошибка стека.

  • 7-й бит, общий флаг ошибки.

  • 8,9,10-й, флаги условий.

  • 11,12,13-й, число, показывающее, какой регистр является вершиной.

  • 14-й бит, условный флаг.

  • 15-й бит, флаг занятости.

Регистр управлениясодержит в себе биты, влияющие на выполнение команд сопроцессора. Биты регистра управления:

  • 0-й бит, маска недействительной операции.

  • 1-й бит, маска денормализованного операнда.

  • 2-й бит, маска деления на ноль.

  • 3-й бит, маска переполнения.

  • 4-й бит, маска антипереполнения.

  • 5-й бит, маска неточного результата.

  • 6,7-й бит, резерв.

  • 8-9-й биты, управление точностью.

  • 10,11-й биты, управление округлением.

  • 12-й, управление бесконечностью.

  • 13,14,15-й, резерв.

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

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

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

  • Неточный результат (округление).

  • Недействительная операция.

  • Деление на ноль.

  • Антипереполнение (слишком маленький результат).

  • Переполнение (слишком большой результат).

  • Денормализованный операнд.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]