Анализ операцій множення і розподілу у певній моделі АЛУ
Виходять досить дивні результати. У потужнішого процесора час виконання удесятеро більше, ніж в менш потужного. Чому відбувається? Насамперед слід відзначити, що апаратно реалізоване множення в DSP дає основний виграш швидкістю. По-друге, DSP менш універсальний, проти i486, тому арифметичні операції в нього оптимізовані до роботи на часі, тобто їхнє вище. Звісно швидкість досить залежить від… Читати ще >
Анализ операцій множення і розподілу у певній моделі АЛУ (реферат, курсова, диплом, контрольна)
ТИПИ МИКРОПРОЦЕССОРОВ.
УЗАГАЛЬНЕНА СТРУКТУРНА СХЕМА ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА.
АРИФМЕТИКО-ЛОГИЧЕСКОЕ УСТРОЙСТВО.
Загальні відомості, функції і классификация.
Алгоритми складання (вирахування) і множення в АЛУ.
ЦИФРОВЫЕ СИГНАЛЬНІ ПРОЦЕССОРЫ.
АЛГОРИТМ ВИКОНАННЯ СКЛАДАННЯ І РОЗПОДІЛУ У АРИФМЕТИКО-ЛОГИЧЕСКОМ УСТРОЇ, НА ПРИКЛАДІ ЦИФРОВОГО СИГНАЛЬНОГО ПРОЦЕСОРА СІМЕЙСТВА ADSP-21XX.
АРИФМЕТИКА І ТИПИ ДАННЫХ.
Рядки битов.
Числа без знака.
Числа зі знаком у вигляді доповнення до двух.
Дріб 1.15.
Арифметичні операції АЛУ.
Арифметика МАС.
Арифметика устрою сдвига.
АЛУ.
Структура АЛУ.
Стандартні функции.
Режим «насичення» і «защелки».
Деление.
МАС (УМНОЖИТЕЛЬ/АККУМУЛЯТОР).
Блок-схема МАС.
Операції МАС.
Переповнення, насичення й оточення в МAС.
ПОРІВНЯЛЬНИЙ АНАЛІЗ ВИКОНАННЯ АРИФМЕТИЧНИХ КОМАНД У РІЗНИХ ТИПАХ ПРОЦЕССОРОВ.
Створення фірмою Intel першого мікропроцесора в 1971 року поклало початок епосі комп’ютеризації. «Завдяки микропроцессорам комп’ютери стали масовим, загальнодоступним продуктом «, — заявив Тед Гофф, одне із винахідників першого процесора. Звати його, разом із іменами його колег — Федеріко Феджина і Стіва Мейзора, внесено до списку лауреатів Національного залу слави винахідників США, а саме винахід визнано однією з найбільших досягнень сучасності.
За трохи більш ніж четвертьвековую історію мікропроцесори пройшли воістину гігантський шлях. Перший чіп Intel 4004 працював на частоті 750 Кгц, містив 2300 транзисторів і коштувала близько 200 доларів. Продуктивність його оцінювався у 60 тисяч на секунду. Сьогодні рекордні показники належать микропроцессорам Alpha 21 264 фірми DEC і вони становлять: 600 МГц, 15.2 мільйона транзисторів, 2 мільярда операцій на секунду і близько доларів соответственно.
Порівняння наведених значень підтверджує оцінку успіхів мікропроцесорної індустрії, цю засновником головою ради директорів фірми Intel Гордоном Муром: «Якби автомобілебудування еволюціонувало зі швидкістю напівпровідникової промисловості, то сьогодні „Ролс-Ройс“ варта була б 3 долара, міг би проїхати півмільйона миль однією галоні бензину, і було б дешевше його викинути, аніж будемо платити за паркування» [ «Intel на Comtek'98» CDROM — perspectives. html ].
Таке інтенсивна розбудова технологій у суспільстві, де основним предметом праці стає інформація, є наслідком зростання попиту налаштувалася на нові знаряддя праці - комп’ютери. Сьогодні комп’ютеризація одна із головних напрямів науково-технічного прогресу і концентрованим його вираженням. Кількість і якість вироблених у країні комп’ютерів, ступінь насиченості обчислювальної технікою найрізноманітніших галузей стає однією з основних критеріїв її економічного й військової потенціалу.
У формованому щорічно у США групою експертів переліку «критичних технологій», що охоплюватиме майже всі напрями виробництва, досліджень, і розробок, що впливають на військовий й економічна статус країни, мікроелектронні технології традиційно займають перше место.
У мікропроцесорах — найскладніших мікроелектронних пристроях — втілені найпередовіші досягнення інженерної думки. У разі властивої цієї галузі виробництва жорсткій конкуренції і величезних капіталовкладень, випуск кожної нової моделі мікропроцесора — однак пов’язані з черговим науковим, конструкторським, технологічним проривом.
Типи микропроцессоров.
Універсалістські мікропроцесори призначаються до застосування в обчислювальних системах: персональних ЕОМ, робочих станціях, а останнім часом й у массово-параллельных супер-ЭВМ. Основне їх характеристикою служить наявність розвинених пристроїв для ефективної реалізації операцій із плаваючою точкою над 64 розрядними і більше довгими операндами. Призначаються переважно щодо науково-технічних расчетов.
Цифрові сигнальні процесори розраховані на обробку у часі цифрових потоків, освічених шляхом оцифровывания аналогових сигналів. Це обумовлює їх порівняно малу розрядність й переважно целочисленную обробку. Проте сучасні сигнальні процесори здатні проводити обчислення з плаваючою точкою над 32−40 розрядними операндами. З іншого боку, з’явився клас медійних процесорів, що становлять закінчені системи в обробці аудіоі видеоинформации.
Найбільшою спеціалізацією і розмаїттям функцій мають микроконтроллеры, використовувані у вбудованих системах управління, зокрема й у побутових приладах. Загальна кількість кристалів з різними системами команд перевищує 500, й вони, з існування виробів зі своїми використанням, мають свою стійку частку рынка.
У цьому курсової роботи прикладі цифрового сигнального процесора сімейства ADSP-21xx виробляється розбір команд множення і розподілу, виконуваних в АЛУ.
Узагальнена структурна схема персонального компьютера.
Центральний процесор в персональні комп’ютери є мікропроцесор, тобто побудований в одній мікросхемі (БИС, СБИС). У його склад входят:
* Центральне пристрій управління — комплекс коштів автоматичного управління процесами передачі й обробки информации;
* Арифметико-логическое пристрій — пристрій, яке здійснює обробку інформації та вироблення ознак управляючих сигналов.
* Внутрішня пам’ять процесора :
* Реєстрова память.
* Постійна пам’ять устрою управления.
Модулі оперативної та постійної пам’яті, пов’язані з мікропроцесором безпосередньо. Інші устрою (монітор, клавіатура, нагромаджувачі на магнітних носіях тощо.) пов’язані з мікропроцесором через контролери вводу-виводу, які, своєю чергою, пов’язані з мікропроцесором через системну шину.
Мікропроцесор є ядром ЕОМ (мал.1). Він здійснює обробку даних, і функцій управління системою. До функцій Управління системою ставляться :
* ініціювання операцій ввода-вывода.
* управління доступом до основний пам’яті (роботу з віртуальної пам’яттю).
* обробка системних подій — прерываний.
* організація багатозадачних режимів роботи.
Організація центрального процесора визначається архітектурою і принципами роботи ЕОМ (склад парламенту й формати команд, організація пам’яті). Логічний структура включає низку функціональних средств:
* кошти обробки інформації.
* локальна память.
* засоби управління системою та програмами.
* управління інтерфейсом і каналами.
Структурно ці гроші розбиваються на центральне пристрій управління, АЛУ, внутрішню пам’ять та управляючі устрою, пов’язані з конкретними пристроями обчислювальної машины.
Центральне пристрій управління приймає і розшифровує команди, формує адреси команд і операндов, формує послідовності управляючих сигналів і відданість забезпечує координацію всіх функціональних вузлів, у вигляді вироблення синхронизирующих сигналов.
Внутрішня пам’ять входить до складу першого рівня життя та пов’язані з АЛУ та інші блоками центрального процесора безпосередньо і має швидкість роботи сумірну зі швидкістю роботи блоків процессора.
* Керуюча пам’ять входить до складу центрального устрою управління і належить до класу постійної пам’яті. Цей вид пам’яті використовується для зберігання мікропрограм. Її відрізняє дуже висока швидкодію і невеличка ємність, яка формулюється кількістю команд у системі команд центрального процессора.
* Реєстрова пам’ять виконано на триггерных елементах і належить у складі центрального процесора. Ємність її невисока, швидкість висока, але вже менше, ніж в керуючої пам’яті. Основний характеристикою такого типу пам’яті є разрядность.
Арифметико-логическое устройство.
Загальні відомості, функції і классификация.
Арифметико-логическое пристрій функціонально можна розділити на частини :
а) микропрограммное пристрій (пристрій управління), який задає послідовність микрокоманд (команд);
б) операційне пристрій (АЛУ), у якому реалізується задана послідовність микрокоманд (команд).
Структурна схема АЛУ та її зв’язку з іншими блоками машини показані на малюнку 2. До складу АЛУ входять регістри Рг1 — Рг7, у яких обробляється інформація, яка надходить з оперативної чи пасивної пам’яті N1, N2, …NS; логічні схеми, реалізують обробку слів по микрокомандам, що надходять з устрою управления.
Закон переробки інформації задає мікропрограма М, яка записується як послідовності микрокоманд A1, A2, …, Аn-1,An. У цьому розрізняють два виду микрокоманд: зовнішні, тобто таких микрокоманды, що надходять в АЛУ від зовнішніх джерел постачання та викликають у ньому ті чи інші перетворення інформації (на рис. 2 микрокоманды A1, A2,…, Аn), та внутрішні, які генеруються в АЛУ і впливають на микропрограммное пристрій, змінюючи природний порядок прямування микрокоманд. Наприклад, АЛУ може генерувати ознаки залежно від результату обчислень ?,?,? та інших. (? — ознака переповнення,? — ознака негативного числа,? — ознака рівності 0 всіх розрядів числа), На рис. 2 ці микрокоманды є такі р1, p2,…, рm.
Результати обчислень з АЛУ передаються по кодовою шинам записи у1, у2, …, уs, в ОЗУ.
Функції регістрів, які входять у АЛУ:
* Рг1 — акумулятор (чи сумматоры) — основний регістр АЛУ, у якому утворюється результат вычислений;
* Рг2, РгЗ — регістри доданків, сомножителей, діленого чи дільника (залежно від виконуваної операции);
* Рг4 — адресний регістр (чи адресні регістри), призначений для запам’ятовування (часом і формування) адреси операндов і результата;
* Рдб — k індексних регістрів, вміст якої використовуються на формування адресов;
* Рг7 — l допоміжних регістрів, котрі за бажанню програміста можуть бути акумуляторами, індексними регістрами чи використовуватися для запам’ятовування проміжних результатов.
Частина операційних регістрів є программно-доступной, тобто можуть бути адресовані у команді до виконання операцій із їх вмістом. До них належать :
* акумулятор,.
* індексні регістри,.
* деякі допоміжні регістри.
інші регістри программно-недоступные, оскільки вони можуть бути адресовані у програмі. Операційні устрою можна класифікувати з вигляду оброблюваної інформації, за способом обробки інформації та логічного структурі. Детальна класифікація АЛУ показано на рис. 3.
Складність логічного структури АЛУ певною мірою можна охарактеризувати кількістю які різняться один від друга микроопераций, необхідні виконання відновлення всього комплексу завдань, поставлених перед АЛУ. На вході кожного регістру зібрані відповідні логічні схеми, щоб забезпечити такі зв’язки між регістрами, які дозволяють реалізувати поставлене набір микроопераций.
Виконання операцій над словами зводиться до виконання послідовності микрокоманд, які керують передачею слів в АЛУ і реальними діями з перетворення слів. Порядок виконання микрокоманд визначається алгоритмом виконання операцій. Отже, зв’язок між регістрами АЛУ і функції, які мають виконувати регістри, залежать переважно від прийнятої методики операцій: арифметичних, логічних та спеціальної арифметики.
Перелік операцій, виконуваних в АЛУ, залежить від призначення цифровий обчислювальної машини та від функцій, виконуваних АЛУ забезпечивши роботи інших пристроїв машини. При поданні операцій на вигляді послідовностей микроопераций АЛУ має складатися з елементів; що реалізують ці микрооперации.
Отже, структура АЛУ визначається набором микроопераций, необхідних до виконання заданих арифметичних, логічних і спеціальних операцій, а завдання побудови АЛУ можна зводити до завданню визначення набору микроопераций, що дозволяє скласти микропрограмму кожній із заданих операцій. Такий набір легко отримати. якщо записати мікропрограми всіх операцій, виконуваних в АЛУ, і вибрати їх все микрооперации, що входять до мікропрограми хоча колись. Проте, при цьому алгоритм операцій вибирати довільно, кількість микроопераций, які входять у повний набір, може бути занадто великим і, отже, АЛУ буде сложным.
Для отримання простіший схеми АЛУ алгоритми арифметичних і логічних операцій слід вибирати з умови отримання мінімального набору микроопераций. У цьому необхідно враховувати вимога забезпечення заданого швидкодії АЛУ: занадто обмежений набір микроопераций можуть призвести до «довгим микропрограммам деяких операцій», що підвищує час виконання даних операций.
Алгоритми складання (вирахування) і множення в АЛУ.
Структурна схема мікропрограми складання показано на рис. 4. Виконання цієї алгоритму полягає у следующем:
1. Перше складова, а встановлюється на Рг1, аналізується його знак: якщо знак негативний, то операнд інвертується і передається на Рг3, якщо позитивний — передається без інверсії через Рг2 на Рг3.
2. Друге складова також встановлюється на Рг1 і аналізується його знак: якщо знак негативний, то операнд інвертується, якщо позитивний — відразу починається підсумовування операндов на Рг2 (сумматоре).
3. Після підсумовування аналізується знак результату: якщо результат негативний, він інвертується, якщо позитивний — додається «+1» ЦП до молодшого розряду результату виконується аналіз ознак переполнения.
4. Що стосується переповнення розрядної сітки машини формується ознака переповнення ?, якщо переповнювання відсутня, то виконується перехід наприкінці мікропрограми сложения.
А, щоб структурна схема, показана на рис. 4 могла виконувати операцію вирахування, досить перед виконанням операції проинвертировать знак другого слагаемого.
Тепер на алгоритм множення. Множення двійкових чисел з фіксованою коми можна зводити до послідовності зрушень і сложений. Найбільш зручний наступний алгоритм: множення починається з молодших розрядів множника, який зсувається вправо, сума часткових творів також зсувається вправо, множимое — нерухомо. На рис. 5 показано графічна інтерпретація цього алгоритма.
1. На початку операції все регістри встановлюються в нульовий состояние.
2. Множимое і множник містяться у певних регістрах, передбачаються також регістри, у яких утворюється сума часткових произведений.
3. Аналізується молодший розряд множника: якщо має значення «1», чи до сумі часткових творів додається множимое.
4. Виробляється зрушення суми часткових творів і множника однією розряд вправо.
5. Дії 3 і 4 повторюються n раз (n — розрядність сомножителей).
Структурна схема мікропрограми множення показано на рис. 6. Через громіздкість розподіл не рассматривается.
Тепер, можна братися до розгляду конкретного АЛУ, що й зроблено. Як приклад візьмемо АЛУ цифрового сигнального процесора — спеціалізованого процесора з RISC архітектурою, покликаного забезпечити вирішення завдань цифровий обробки сигналів. Важко знайти таку область техніки, де немає міг би застосовуватися сигнальні процесори. Це цифрова фільтрація, кодування і декодування інформації, обробка звуку розпізнавання промови, обробка зображень, медицина, вимірювальна техніка, управляючі системи та багато другое.
Цифрові сигнальні процесори.
А чим відрізняється цифровий процесор від зазвичайного мікропроцесора? Передусім — архітектурою і українською системою команд. У основу побудови DSP (Digital Signal Processor) покладено такі принципи :
* використання гарвардської архитектуры.
* скорочення тривалості командного цикла.
* застосування конвейеризации.
* застосування апаратного умножителя.
* включення до систему команд спеціальних команд цифровий обробки сигнала.
Гарвардська архітектура передбачає зберігання програм, тож даних у двох роздільних запам’ятовувальних пристроях. Відповідно на кристалі є роздільні шини адреси — й даних (у деяких типах процесорів — кілька шин даних, і адреси). Це дозволяє поєднувати у часі вибірку і виконання команд.
Конвеєрний режим використовується для скорочення командного циклу. Зазвичай застосовується двохчи трехкаскадный конвеєр, що дозволяє в різних стадіях виконання одночасно обробляти два чи три инструкции.
Апаратний умножитель застосовується для скорочення часу виконання однією з основних операцій цифровий обробки сигналу — множення. У процесорах загального призначення війни операція використовується протягом кількох тактів зсуву і складання (див. див. мал.5) і чимало часу, а DSP завдяки спеціалізованому умножителю — один цикл.
Алгоритм виконання складання і розподілу в арифметико-логическом устрої, з прикладу цифрового сигнального процесора сімейства ADSP-21xx.
Всі пристрої в процесорах цього сімейства 16-и бітні з фіксованою точкою. Майже всі операції розуміють уявлення знакових чисел у вигляді доповнення до двох. Інші ж використовують беззнаковые числа чи навіть рядки бітов. Спеціальна підтримка є для багатослівних обчислень і блокової плаваючою арифметики.
Арифметика і типи данных.
Рядки битов.
Це найпростіша форма записи; 16 біт становлять рядок бітов. Прикладами операцій, у яких використовується цей формат, є логічні операції NOT, AND, OR, XOR. Ці операції, виконувані АЛУ, вважають, що й аргументи рядки бітов і дбають про знаку або про становищі десяткової точки.
Числа без знака.
Беззнаковые двоичные числа можуть лише позитивні значення й відтак мають майже вдвічі більше більший діапазон, ніж знакові числа тієї самої довжини. Молодші слова чисел зі збільшеною точністю використовують як беззнаковые числа.
Числа зі знаком у вигляді доповнення до двух.
Для арифметики процесорів сімейства термін «знаковий» завжди позначає числа. Записані у вигляді доповнення до двох. Багато інструкції процесора розуміють чи підтримують арифметику по модулю 2.
Дріб 1.15.
Арифметичні інструкції процесорів сімейства оптимізовані для операцій на дробовому двоичном форматі 1.15. У цьому вся форматі лівий біт числа позначає його знак, і 15 решти біт є числа від -1 до майже 1 (через несиметричності уявлення знакових чисел).
Арифметичні операції АЛУ.
Усі арифметико-логические операції трактують свої операнды й отримують результати як 16 розрядні бітові рядки, крім примітивів знакового розподілу (DIVS). Різні прапори трактують результати як числа зі знаком: прапор переповнення (AV) і прапор негативного числа (AN).
Логіка прапора переповнення полягає в арифметиці по модулю 2. Він установлюється якщо знаковий біт змінювався непередбачуваним чином. Наприклад при додаванні двох позитивних чисел, результат також має бути позитивний. Якщо відбувається переповнювання (перенесення в знаковий біт, який встановлює їх у одиницю, отже результат виходить негативним), то встановлюється біт AV.
Логіка прапора перенесення полягає в беззнаковой арифметиці. Цей прапор встановлюється у разі, якщо генерується перенесення з старшого розряду числа, яка може бути записаний у результат. Цей прапор дуже корисний під час операції з багатослівними уявленнями чисел для молодших слов.
Арифметика МАС.
Результати множення є бітові рядки. Операнды ж обробляються оскільки зазначено у самій інструкції (множення знакових, множення беззнаковых, множення знакового на беззнаковое чи операція округлення). 32-битный результат з умножителя вважається знаковим, оскільки відбувається знакове розширення попри всі 40 біт наборів регістру умножителя (MR).
Усі процесори сімейства підтримують два формату корекції результату множення :
* дробовий (1.15).
* цілий (також називається 16.0).
Коли процесор множить два 1.15 операнда, результат є числом в форматі 2.30 (два знакових біта і 30 дробових біт). У дробовому режимі МАС автоматично зрушує результат множення вліво однією біт перед перенесенням їх у регістр результату (MR). Після цього зсуву формат результату стає 1.31, що дозволяє округлити його формату 1.15.
У целочисленном режимі зрушення вліво немає. Наприклад, якщо операнды формату 16.0, то 32-битный результат множення буде зацікавлений у форматі 32.0. Понад те тут зрушення непотрібен, оскільки він змінить значення результата.
Арифметика устрою зсуву.
Багато сдвиговые операції створено спеціально для знакових чи беззнаковых чисел: логічні зрушення припускають беззнаковые операнды, тоді як арифметичні зрушення припускають знакові операнды.
Экспоненциальная логіка передбачає знакові операнды і підтримує блочну плаваючу точку, що також виходить з форматі доповнення до двух.
АЛУ.
Арифметико-логическое пристрій забезпечує стандартний набір арифметичних і логічних операцій. Також є два примітиву розподілу, що дозволяють реалізовувати многоцикловое деление.
Структура АЛУ.
На малюнку 7 показано блок-схема АЛУ.
АЛУ має три 16-битных регістру, доступних для програміста: X, Yрегістри операндов, а R — регістр результату. АЛУ використовує вхідний сигнал перенесення (CI), що означає біт перенесення в регістрі арифметичного стану (ASTAT). АЛУ генерує шість статусних сигналів :
* результат 0 (AZ).
* негативний (AN).
* перенесення (AC).
* переповнювання результату (AV).
* знак (AS).
* стан приватного (AQ).
Наприкінці циклу все сигнали арифметичного статусу змінюють стану відповідних бітов в регістрі арифметичного статусу (ASTAT).
Вхідний порт X може приймати дані з цих двох джерел: з блоком регістрів АХ чи з шини результату. Шина результатів (R) з'єднує вихідні регістри всіх обчислювальних пристроїв, дозволяючи їм здалося бути безпосередньо операндами інструкцій. Блок регістрів АХ і двох регістрів: АХ0 і АХ1. Ці регістри багато читали і може бути записані через шину DMD. Вихід блоку регістрів АХ такий, що з них може забезпечувати операнд для АЛУ, тоді, як інший може записуватися на згадку про через шину DMD.
Вхідний порт Y він може приймати дані з цих двох джерел: з набору регістрів АY або з регістру зворотний зв’язок AF. Блок регістрів AY і двох регістрів AY0 і AY1. Ці регістри багато читали і може бути записані через шину DMD, і навіть можуть бути записані через шину PMD. Вихід блоку регістрів AY збігається за своїми можливостями з блоком регістрів АХ.
Результат роботи АЛУ завантажується або у регістр зворотний зв’язок AF, або у регістр результату AR. Регістр зворотний зв’язок — внутрішній регістр АЛУ, що дозволяє використовувати результат безпосередньо, як операнд Y. Регістр результату AR може записуватися як у шину DMD, і на шину результатів. Він також безпосередньо завантажуємо з шини DMD.
Набір інструкцій дозволяє здійснити читання цих регістрів з шини PMD, та заодно потрібно використовувати пристрій обміну між DMD-PMD шинами.
Будь-які регістри, пов’язані з АЛУ можуть як читатися, так і писатися щодо одного циклі. Регістри читаються на початку циклу і записуються наприкінці. Нове значення, записаний у регістр, може бути лічено на початок наступного циклу.
АЛУ містить два набору регістрів AR, AF, АХО, АХ1, AYО, AY1. Кожного моменту часу домен лише одне набір. Додатковий набір регістрів може бути зроблений активним (наприклад, при обробці переривання) для дуже швидкого перемикання контекстів. Нова завдання, така, як обробка переривання, можуть виконати без запам’ятовування поточного стану регістрів АЛУ.
Вибір первинного чи вторинного набору регістрів контролюється битому 0 в регістрі режиму і статусу процесора (MSTAT). Якщо це біт нульової, використовується первинний набір, якщо він одиниця, то використовується вторинний набір регистров.
Для обробки чисел із підвищеною точністю передбачено сигнал перенесення і прапор перенесення (AC). Операція складання з перенесення (+Cl) варта складання «верхніх «частин чисел із підвищеною точністю. Віднімання з заемом (+CI-1) призначено для вирахування «верхніх «частин чисел із підвищеною парністю.
Режим «насичення» і «защелки».
Регістр AR має режим роботи що він автоматично встановлюється в максимальне позитивне чи максимальне негативне число у разі виникнення переповнення Цей режим включається установкою біта 3 в регістрі режиму і статусу процесора (MSTAT). При включеному режимі насичення, значення, одержуване в АR, залежить від прапорів перенесення і переповнення, сгенерированных АЛУ нинішнього року циклі. Нижче приведено таблиця, показує вміст AR залежно від прапорів при включеному режимі насыщения.
Реалізація режиму насичення істотно відрізняється від він у МАС-е, де режим насичення вказується у самій инструкции.
Регістр АF не підпорядковується режиму насичення, тож коли результатом операції, є регістр АF, станеться циклічний перехід, але прапори відіб'ють те що, що результати був насыщен.
Режим «засувки «переповнення АLU, разрешаемый битому 2 в регістрі режиму і статусу процесора (MSTAT), призводить до того, що прапор переповнення АV залишається піднятим після переповнення, як і раніше, що наступні інструкції можуть генерувати переповнення. У цьому вся режимі прапор АV то, можливо очищено лише прямою записом нуля через шину DMD.
Деление.
Функція розподілу реалізується додаткової сдвиговой логікою, не показаної малюнку 7. Розподіл досягається з допомогою двох примітивів розподілу. Їх використовують щоб одержати невосстанавливаемого умовного алгоритму розподілом, котрий використовує складання і вирахування. Розподіл то, можливо знаковим і беззнаковым; проте, дільник і подільне би мало бути однакового типа.
Розподіл з одинарної точністю, з 32-битным діленим і 16-битным делителем, дає 16-битное приватне, виконується за 16 циклів. Також може бути враховано приватні меншою й більшої розрядності. Дільник можуть утримувати у АХ0, АХ1 чи з R регістрів. Старша частина знакового діленого можуть утримувати у АY1 чи AF. Старша частина беззнакового діленого можуть утримувати лише у AF. Молодша частина діленого маєш бути у АY0. Після закінчення операції розподілу приватне перебуває у AY0.
Перший із двох примітивів розподілу, «ділити знак «(DIVS), виконується на початку розподілу під час ділення знакових чисел. Ця інструкція отримує знаковий біт діленого, провівши операцію «який виключає чи» зі знаками діленого і дільника. Регістр AY0 зсувається на 1 розряд, отже розрахована знаковий біт міститься у наймолодший (правий) розряд. Отриманий знаковий біт також завантажується у прапор АQ регістру арифметичних прапорів. Найбільш старший (лівий) біт AYO зсувається в молодший біт AF, а решта старші 15 біт AF завантажуються з 15-ти молодших біт регістру R з АЛУ, що у своє чергу пересилає вміст вхідного регістру Y просто у регістр результату R. Послідовний ефект у тому, щоб зрушити вліво пару регістрів AF-AYO і переслати знак приватного саме у молодший розряд. Малюнок 8 ілюструє операцію DIVS.
При розподілі беззнаковых чисел інструкція DIVS немає. Натомість прапор АQ в регістрі арифметичного стану може бути вручну очищено. Цей біт сигналізує наступним операціям у тому, що приватне має бути положительным.
Другий примітив розподілу — інструкція «ділити приватне «(DIVQ), яка генерує 1 біт приватного за цикл і виконується повторно, щоб підрахувати решта розряди приватного. Для беззнакового розподілу з одинарної точністю інструкція DIVQ виконується 16 раз, щоб отримати 16 біт приватного. Для знакового розподілу з одинарної точністю інструкція DI VQ виконується 15 раз, після обчислення знакового біта інструкцією DI VS. Інструкція зрушує регістр AYO вліво на 1 біт отже новий біт приватного міститься у молодший біт. Стан прапора АQ (отримане у час попередніх операцій) визначає інструкцію, що використовується для отримання часткового залишку. Якщо AQ=1, то АЛУ додає дільник до часткового залишку в AF. Якщо AQ=O, то АЛУ віднімає дільник з часткового залишку в AF. Регістр результату До завантажується зі зміщенням в AF оскільки це описано для інструкції DIVS. Прапор AQ вважається як який виключає логічне чи (XOR) старшого біта дільника і поранив старшого біта регістру результату АЛУ, а черговий біт приватного виходить инвертированием цього значення. Отриманий біт приватного завантажується в молодший біт регістру АYО, і потім зсувається вліво на 1 біт. Малюнок 9 ілюструє операцію DlVQ.
Формат приватного нічого для будь-якого уявлення то, можливо визначено з формату діленого і дільника. Нехай NL дорівнювала кількості біт зліва десяткової точки, NR дорівнювала кількості біт праворуч від десяткової точки діленого; DL дорівнювала кількості біт зліва десяткової точки, DR одно кількості біт праворуч від десяткової точки дільника; тоді кількість біт.
зліва десяткової точки приватного є NL-DL+l, a кількість біт справа від десяткової точки приватного є NR-DR-1.
Деякі зміни формату потрібно використовувати щоб гарантувати правильність приватного. Наприклад, якщо обидва операнда знакові і повністю дробные (подільне в форматі 1.31 і дільник в форматі 1.15), результат повністю дробовий (в форматі 1.15) і тому подільне має менше дільника щоб одержати вірного результата.
Щоб розділити 2 цілих (подільне в форматі 32.0 і дільник в форматі 16.0) й одержати цілий результат (в форматі 16.0), надо зрушити подільне на 1 біт вліво (отримати формат 1.31) перед делением.
Переповнення алгоритму трапляється за тому випадку, якщо приватне неспроможна бути представлено в форматі приватного або якщо дільник нульовий менше допустимого.
МАС (умножитель/аккумулятор).
МАС забезпечує високошвидкісне множення, множення з накопиченням даних (різниці), насичення й очищення результату. Зворотний зв’язок дозволяє частини результату MAC використовуватися як один з множимых наступного цикле.
Блок-схема МАС.
Малюнок 10 показує блок-схему МАС. Умножитель має дві вхідних 16-битных порту — Х і У і тільки 32-битный вихідний порт результату Р. 32-битное твір передається 40-битному сумматору, який додає чи віднімає поточний результат до регістру результату (MR) чи поміщає поточний результат в регістр MR. Ширина регістру MR становить 40 біт. Фактично він з трьох регістрів: MRО і MR1, 16-битных, і 8-місячного бітного MR2.
Акумулятор має ширину, велику ніж 32 біта у тому, щоб дозволити проміжні переповнення і під час кількох операцій поспіль. Прапор МV (multiplier overflow, переповнювання умножителя) встановлюється, якщо значущі біти з’явилися вище 32-битной кордону регістру МR.
Входные/выходные регістри МАС, і навіть запись/чтение у яких, аналогічні таким для АЛУ.
Результат роботи сумматора завантажується або у регістр зворотний зв’язок МF, або у регістр результату MR. Регістр зворотний зв’язок MF дозволяє використовувати біти 16−31 результату безпосередньо, як операнд Y в наступному циклі. Регістр результату (MR) шириною 40 біт складається з трьох регістрів: MR0, MR1 і MR2. Кожен з цих регістрів то, можливо безпосередньо завантажений через шину DMD і записано через шину DMD чи шину проміжних результатів R.
MАС, аналогічно АLU, містить другий банк регістрів, як показано малюнку 4.6, за первинними регістрами. Вибір первинного чи вторинного набору регістрів контролюється битому 0 в регістрі режиму і статусу процесора (MSTAT).
Операції МАС.
Список виконуваних МАС-ом операцій :
Х*Y.
MR+X*Y.
MR-X*Y.
0умножить Х на Y.
помножити Х на Y і додати результат до MR.
помножити Х на Y і відняти результат зі змісту MR.
очистити регістр результату MRМАС забезпечує два стандартних режиму умножения/аккумулирования: дробовий режим (для чисел в форматі 1.15) і цілий режим для цілих в форматі 16.0.
У дробовому режимі формат 32-битного вихідного регістру регулюється, тобто, відбувається знакове розширення й зрушення вмісту на 1 біт вліво перед додаванням в MR. Наприклад, 31-ый біт регістру Р відповідає 32-му битку регістру MR (що у своє чергу відповідає битку 0 регістру MR2), a нульової біт регістру Р відповідає 1-му битку регістру MR (що у своє чергу відповідає битку 1 регістру MRO). Молодший біт MR просто очищається. Решта сім біт MR2 заповнюються знаком регістру Р (тобто 31 битому Р).
У цілому нині режимі 32-битный регістр результату не зсувається при додаванні до регістру MR. Вісім біт MR2 заповнюються знаком Р.
Режим вибирається 4-ым битому регістру режиму і стан (MSTAT). Одиниця у тому бите означає целочисленный режим; нуль означає дробовий режим. У обох режимах вміст регістру Р подається на вхід сумматора, який додає чи віднімає нова книга з поточного вмісту регістру MR, щоб сформувати остаточний результат в R.
Задля реалізації обчислень із підвищеною точністю, умножитель дозволяє здійснювати будь-які комбінації операндов Х і Y (множити знакове на знакове (SS), беззнаковое на знакове (US), беззнаковое на беззнаковое (UU), знакове на беззнаковое (SU)).
Формати операндов записуються як частину інструкції. Тому динамічно вибираються з кожної інструкції умножения.
8-битный регістр MR2 при записи/чтении міститься у восьми молодших бітах шин даних. Під час читання MR2 через шину DMD чи шину проміжних результатів ® відбувається його знакове розширення до 16 біт. MR1 також має можливість автоматичного розширення знака. Тоді MR1 завантажується з шини DMD, все біти в MR2 автоматично заповнюються знаковим битому МR1, отже MR2 служить розширенням MR1. Чуби завантажити в регістр МR2 значення, не на знакового розширення MR1, треба завантажувати MR2 після завантаження МR1. Завантаження ж MR0 впливає на будь-який які залишилися регістрів; знакове розширення немає за мінімального завантаження MR0.
Переповнення, насичення й оточення в МAС.
Акумулятор генерує прапор переповнення МV, який завантажується в регістр арифметичного статусу процесора (АSТАТ) після виконання кожну операцію MАС-ом. Цей біт встановлюється у разі, якщо результат акумулятора, интерпретируемый і кількість з доповненням до 2, (MR) перетинає 32-битную кордон (МR1/МR2) .Тобто прапор МV встановлюється, якщо верхні дев’ять біт MR в повному обсязі одночасно рівні 0 чи 1.
Регістр МR має можливість виконувати операцію насичення, тобто встановлюватися в максимальне позитивне (негативне) число при переповненні. Операція насичення залежить від прапора МV в регістрі ASTAT і знакового біта регістру MR2.
Переповнення вище 40-го біта регістру MR2 на повинен допускатися. Знак числа втрачається безповоротно заодно й насичення може мати простий цілком протилежний результат. Але потрібний більш 255 простих переповнень (типу MV), щоб таке могло случиться.
Акумулятор має можливість округлити 40-битный результат R до 16-битного. Округлення має зазначене в інструкції з допомогою опції (RND). Округлений результат направляють у регістр MR чи MF. Коли відбувається округлення з регістром MR як вихідного, вміст MRl представляє з себе округлений 16-битный результат, а вміст регістрів MR2 і MR1 може розглядатися як результат, округлений до 24 бит.
Акумулятор використовує несмещенную схему округлення. Звичайний метод усунутого округлення виробляється додаванням числа 0×8000 до MR (тобто коли MR0 більше або одно 0×8000, то MR1/MR2 инкрементируются), у своїй округлений результат перебуває у MR2 і MR1. Але це метод призводить до загальному позитивному зміщення, т.к. за середнього значенні (коли регістр MRO дорівнює 0×8000) число заокруглюється вгору. Акумулятор ж усуває це усунення, завжди встановлюючи біт 0 MR1 в нуль після округлення, якщо МR0 містить 0×8000. Таким чином, відбувається округлення парних значень MR1 донизу й непарних значень MR1 вгору, що у своє чергу призводить до рівнозначності операції округлення великих вибірках чисел.
Закінчивши розгляд АЛУ DSP, спробуємо порівняти його продуктивність по арифметичним операціям, наприклад, з i486DX — досить потужним універсальним процесором. Почати з те, що в АЛУ цифрового сигнального процесора будь-яка інструкція виповнюється за цикл, замість кількох циклів у другому процесорі. Працює такий процесор на частоті до 33.3 МГц (у своїй i486DX дбає про частоті 50 МГц, а поліпшені версії на частотах до 133 МГц). Операції з плаваючою точкою мають 40 розрядні операнды, замість 80 розрядних в FPU i486DX. Інші параметри (конвейеризация, архітектурні рішення) практично ідентичні. Наприклад нижче дана таблиця, яка відображає час виконання програми «перетворення Фур'є» на 1024 точки для процесорів i486DX2−66 і ADSP-21xx.
Виходять досить дивні результати. У потужнішого процесора час виконання удесятеро більше, ніж в менш потужного. Чому відбувається? Насамперед слід відзначити, що апаратно реалізоване множення в DSP дає основний виграш швидкістю. По-друге, DSP менш універсальний, проти i486, тому арифметичні операції в нього оптимізовані до роботи на часі, тобто їхнє вище. Звісно швидкість досить залежить від алгоритмів множення, ділення клітин і складання. Адже хоч би якою була швидкість процесора погано оптимізований алгоритм буде призводить до зайвим схемным рішенням, втрати часу виконання зайвих микрокоманд як наслідок, погіршення параметрів процесора. У деяких процесорах (вже відсутніх над ринком, наприклад i8080 або його наступник Zilog Z80) команд множення і розподілу немає. І тут дані арифметичні операції реалізовувалися програмно, через складання та наявні зрушення. Відповідно продуктивність при обчисленнях падала у кілька разів.
Сьогодні продуктивність процесорів і під час арифметичних операцій є досить значним параметром. Сьогоднішній комп’ютер неможливо уявити без коштів мультимедіа, а мультимедіа — це величезні обсяги оцифрованою графіки і звуку, причому сжимаемые і разжимаемые у часі (формати MPEG, GSM). Звісно частина з обов’язків центрального процесора беруть він контролери вводу-виводу (звукова і відеокарти), але переважно у себе не мають вбудованої підтримки кодування і декодування інформації. Ще приклад: нині використовують бази даних із максимальним близько 4 Тб. Відповідно, такі обсяги інформації потребують значних обчислювальних можливостей з прискорення пошуку істини та звернення до записям.
Тож виходить, що старанно продумані реалізації алгоритмів арифметичних операцій та схемних рішень ведуть до збільшення швидкодії центрального процесора як наслідок, отриманню ширших можливостей роботи з информацией.
1. Довідник по цифровий обчислювальної техніки (процесори і пам’ять), «Технiка», 1979.
2. Цифрові сигнальні процесори, «Микроарт», 1996.
3. Григор'єв «Мікропроцесор i486», 1993.
4. СD-ROM «Intel на Comtek'98» (образ російського веб-сайту Intel).
5. CD-ROM «Intel Architecture Information Library».
6. Лекції за курсом «Обчислювальні машини та мережі».