режими округлення: округлення до нуля і округлення до найближчого. Режими округлення відповідають стандарту IEEE 754, як визначено нижче:
Округлення до нуля. Якщо результат до округлення точно не представити у певному форматі, то він округляється до числа, яке ближче до нулю. Це еквівалентно усіканню. p> Округлення до найближчого. Якщо результат до округлення точно НЕ представимо у певному форматі, то він буде заокруглений до числа, яке ближче до нього.
Якщо результат до округлення знаходиться точно посередині між двома числами певного формату (відмінними молодшим бітом), то округлений результат - це число, яке має нульовий молодший біт. Статистично округлення вгору трапляється так само часто, як і округлення вниз, тому немає великого зсуву у вибірці. Через те що максимальне число з плаваючою точкою на один молодший біт менше, ніж число, що представляє нескінченність, результат, який знаходиться посередині між максимальним числом з плаваючою точкою і нескінченністю, округлюється в цьому режимі до нескінченності. Режим округлення для всіх операцій ALU та операцій з плаваючою точкою помножувача визначається бітом TRUNC в регістрі MODEL Якщо біт TRUNC встановлений, то обраний режим округлення до нуля. Інакше використовується режим округлення до найближчого. Для операцій помножувача з фіксованою крапкою над дробовими даними підтримуються ті ж самі два режими округлення, але реально помножувач виконує тільки операцію округлення до найближчого. Через те що помножувач має локальний регістр результату операцій з фіксованою точкою, округлення до нуля виконується неявно шляхом зчитування тільки старших бітів результату і відкидання молодших.
5. Арифметико-логічний пристрій (ALU)
ALU виконує арифметичні операції над даними з фіксованою і плаваючою точкою і логічні операції над даними з фіксованою крапкою. Команди ALU з фіксованою точкою оперують над 32-розрядними операндами з фіксованою точкою і видають 32-розрядний результат з фіксованою крапкою. Команди ALU з плаваючою точкою оперують над 32-або 40-розрядними операндами з плаваючою точкою і видають 32 - або 40-розрядні результати з плаваючою крапкою.
Команди ALU:
з плаваючою точкою: додавання, віднімання, додавання/віднімання, усереднення;
з фіксованою точкою: додавання, віднімання, складання/віднімання, усереднення;
маніпуляція з даними з плаваючою крапкою: двійковий логарифм, масштабування, мантиса;
з фіксованою точкою: додавання з перенесенням, віднімання з заемом, інкремент, декремент;
логічні AND, OR, XOR, NOT;
функції: модуль, скидання, мінімум, максимум, усічення, порівняння;
перетворення формату;
примітиви поділу - і ділення на корінь квадратний пана.
Операція подвійного складання/віднімання і паралельні операції ALU і помножувача описані нижче в розділі "Багатофункціональні обчислення". <В
5.1 Робота ALU
На вхід ALU надходять один або два вхідних операнда, звані X і Y, які можуть бути вмістом будь-якого регістра в регістровому файлі. Зазвичай повертається один результат; при операції складання/віднімання - два результату, після порівняння ніякі результати не повертаються, а оновлюються тільки прапори. Результати операцій ALU можуть повертатися в будь-який регістр реєстрового файлу. Вхідні операнди пересилаються з реєстрового файлу в ALU протягом першої половини циклу. Результати передаються в регістровий файл протягом другої половини циклу. Т.ч., ALU може зчитувати і записувати один і той же регістр реєстрового файлу за один цикл.
При операціях ALU з фіксованою точкою операнди X і Y обробляються як 32-розрядні з фіксованою крапкою. Передаються 32 старших біта з регістра в регістровому файлі. Результат операції з фіксованою точкою - Завжди 32-розрядне значення з фіксованою крапкою. Деякі операції з плаваючою точкою (LOGB, MANT і FIX) також можуть повертати результати з фіксованою крапкою. Результати з фіксованою точкою поміщаються в 32 старших біта регістра в регістровому файлі, а вісім молодших біт обнуляються. Формат операндів і результатів з фіксованою точкою залежить від операції. У більшості арифметичних операцій немає необхідності розрізняти цілі і дробові формати. Вхідні операнди з фіксованою точкою в операціях, таких як масштабування числа з плаваючою точкою, обробляються як цілі. У певних станах, таких як переповнення, арифметичні операнди і результати з фіксованою точкою обробляються як числа в додатковому коді.
В
5.2 Режими роботи ALU
Режим роботи ALU визначається трьома бітами в регістрі MODEL Біт насичення ALU впливає на операції ALU, які повертають результати з фіксованою точкою; біт режиму округлення і біт кордону округлення впливають на операції з плаваючою крапкою в ALU і умножителе.
Біт M0DE1 Ім'я Функція
13 ALUSAT1 = дозволено насичення ALU (повномасштабна
...