Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
Системне програмування
ЛАБОРАТОРНА РОБОТА № 3
ВИКОРИСТАННЯ МАТЕМАТИЧНОГО СПІВПРОЦЕСОРА
Львів 2012
Мета: познайомитися з принципами роботи математичного співпроцесора і використати його можливості для обчислення арифметичних виразів.
Теоретичні відомості
Математичний співпроцесор запускається центральним процесором. Після запуску він виконує всі обрахунки самостійно і паралельно з роботою центрального процесора. Якщо центральний процесор направляє наступну команду співпроцесору в той момент, коли співпроцесор ще не закінчив виконання попередньої команди, центральний процесор переводиться в стан очікування. Якщо ж співпроцесор не зайнятий, центральний процесор, направивши команду співпроцесору, продовжує свою роботу, не очікуючи завершення обрахунку. Послідовне розташування команд співпроцесора і центрального процесора в коді програми створюють ілюзію послідовного їх виконання. Простіше кажучи можлива така ситуація, що коли центральний процесор звернеться до комірки пам’яті, куди арифметичний співпроцесор повинен був записати результат своїх обчислень і якщо співпроцесор ще не закінчив обрахунки то результату там не буде. Однак є спеціальні засоби синхронізації (команда FWAIT).
Префікс команд та адресація операндів
Команди які призначенні для виконання співпроцесором, записуються в програмі як звичайні машинні команди центрального процесора, але всі вони починаються з байта, який відповідає команді центрального процесора ESC. Зустрівши таку команду, процесор передає її співпроцесору, а сам продовжує виконання програми з наступної команди.
Асемблерна мнемоніка всіх команд співпроцесора починається з букви F, наприклад: FADD, FDIV, FSUB и так далі. Команди співпроцесора можуть адресувати операнди, аналогічно звичайним командам центрального процесора. Операндами можуть бути або дані, які розміщуються в основній пам’яті комп’ютера, або внутрішні регістри співпроцесора.
Для команд арифметичного співпроцесора можливі всі види адресації даних, які використовуються центральним процесором.
Формати даних
Математичний співпроцесор може обробляти дані в форматі з плаваючою комою і цілі числа.
Дійсні числа. В загальному вигляді дійсні числа в загальних обрахунках можна записати наступним чином:
(знак)(мантиса)*10(знак)(порядок)
Важливим є таке поняття, як нормалізоване представлення чисел: якщо ціла частина мантиси числа складається з однієї цифри, не рівної нулю, то число з плаваючою крапкою називається нормалізованим. Перевага використання нормалізованих чисел полягає в тому, що для фіксованої розрядної сітки числа (тобто для фіксованої кількості цифр в числі) нормалізовані числа мають найбільшу точність.
При програмуванні на мовах високого рівня зустрічається наступне представлення чисел з плаваючою крапкою:
(знак)(мантиса)E(знак)(порядок)
Арифметичний співпроцесор може працювати з дійсними числами в трьох форматах:
- одинарної точності (4 байти)
- подвійної точності (8 байт)
- розширеної точності (10 байт)
При будь-якому представленні. старший біт визначає знак дійсного числа: 0 - додатне число, 1 – від’ємне число. Всі числа, рівні по модулю, відрізняються лише цим бітом, оскільки для представлення від’ємних чисел доповняльний код не використовується, на відміну від центрального процесора.
Арифметичний співпроцесор працює з нормалізованими двійковими числами. Двійкове число з плаваючою крапкою називається нормалізованим, якщо ціла частина мантиси рівна 1. З метою розширення розрядної сітки, ця одиниця не зберігається у форматах одинарної і подвійної точності. У форматі з розширеною точністю зберігається і "зайвий" біт цілої частини нормалізованого числа. Основна причина використання для обчислень розширеної точності - оберігання програми від можливої втрати точності обчислень, пов’язаної з великими відмінностями в п...