Команди керування пристроєм FPU 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Команди керування пристроєм FPU



Команд керування пристроєм є не так багато. Одна з них, , використовується для умовного переходу. Інші команди в обчисленнях майже не використовуються і призначені для керування FPU на системному рівні. Багато команд мають альтернативні мнемоніки, другою буквою яких є буква , яка означає – не очікувати. Наявність цієї букви полягає в тому, що відповідна команда не перевіряє незамасковані особливі випадки і виконується негайно. Тоді транслятор не вставляє перед нею команду , тому перед її виконанням FPU не перевіряє наявність особливих випадків з плаваючою крапкою.

Усі інші команди з плаваючою крапкою процесор синхронізує автоматично; всі операнди передаються до ініціалізації наступної команди. Тому для правильного виконання команд, завдяки автоматичній синхронізації, не потрібна попередня команда .

Синхронізація ж особливих випадків ґрунтується на використанні команди . Оскільки цілочисловий пристрій і FPU працюють паралельно, то можливо, що особливий випадок з плаваючою крапкою зруйнує важливу інформацію до виклику обробника особливого випадку. Застосування команди у потрібному місці дозволяє уникнути такої ситуації.

Команда ініціалізації FPU:

;

;

;

; ;

; ; .

– (заокруглення до найближчого, всі особливі випадки замасковані, максимальна 64-бітова точність). Слово стану , – вершина стека. Всі регістри стека визначені порожніми. Вказівники помилки (команди і даних) установлені в нуль. Першою командою після вмикання живлення має бути команда . Команда перед виконанням ініціалізації контролює помилки з плаваючою крапкою, – не контролює.

Команда – завантажує в новий вміст з (це повинно бути ціле слово в оперативній пам’яті). Відзначимо, якщо в установлено будь-який прапорець особливого випадку, то завантаження нового слова керування може призвести до формування особливого випадку перед виконанням наступної команди. Тому рекомендується перед завантаженням нового значення слова керування установити в нуль прапорці в .

Команди і – зберігають і в оперативній пам’яті або в регістрі . Команди і контролюють наявність особливих випадків, на відміну від команд і .

Команда – в слові стану установлює в нуль прапорці особливих випадків біти від 0 до 7 (, та ) і (біт 15). Дану команду має виконати процедура обробки особливого випадку перед поверненням в перервану програму, інакше буде сформоване нове переривання (яке можливо тільки що аналізувалося). Присутність або відсутність параметра-букви означає, як і в попередніх командах, контролює або не контролює відповідно команда особливий випадок перед своїм виконанням. Надалі цей факт притаманний усім командам, в яких може бути цей параметр.

Команда – зберігає поточний повний стан FPU в приймачі , а потім установлює початковий його стан (як і команда ). Операнд – 94-байтовий для і 108-байтовий для . Команди і не зберігають стан FPU до призупинення всіх його дій. Якщо програма повинна читати образ стану після команди збереження, потрібно використати команду , що забезпечує коректне завершення збереження.

Команда – перезавантажує стан FPU з області оперативної пам’яті. Ці дані повинні були бути записані раніше командою або і не повинні модифікуватися іншими командами. Якщо образ стану має незамаскований особливий випадок, його завантаження даною командою зумовлює особливий випадок.

Команди і – зберігають поточне середовище в , а потім маскують всі особливі випадки з плаваючою крапкою. Поточне середовище: і вказівники помилок (даних і команди). Ці команди не зберігають середовище до призупинення всіх дій FPU.

Команда – перезавантажує середовище FPU з області оперативної пам’яті .

Команди і – відповідно виконують інкремент і декремент вказівника стека і не передають ніяких даних. Регістр попередньої вершини стека при виконанні команди не змінюється і не відзначається як порожній, тобто дія цієї команди не еквівалентна вилученню зі стека. Команда виконує ніби запис у стек, але дане, яке записується відсутнє, регістр тегів не змінюється.

Команда – записує в тег вказаного регістра , тобто відзначає регістр як порожній, але вміст регістра і вказівник стека не змінюються.

Команда – заставляє FPU перед продовженням обчислень перевірити незамасковані особливі випадки, які очікують аналізу програмами – обробниками особливих випадків.

Команда – є порожньою командою, яка не виконує ніяких дій.

Наведемо таблицю команд керування FPU.

№ п/п Мнемоніка Операція
  Ініціалізація FPU
  Завантаження слова керування
  Збереження слова керування
  Збереження слова стану
  Установити в нуль прапорці ОВ в
  Завантаження середовища
  Збереження середовища
  Збереження повного стану
  Відновлення повного стану
  Інкремент
  Декремент
  Звільнення регістра
  Порожня команда
  Команда очікування

 



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 264; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.196.27 (0.006 с.)