Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_сем2_А4(19-04-10).DOC
Скачиваний:
1
Добавлен:
03.05.2019
Размер:
1.34 Mб
Скачать

Лабораторна робота №9

Тема:. Проектування арифметико-логічних пристроїв для реалізації заданого набору операцій

Мета: Отримати навички в побудові арифметико-логічних пристроїв цифрових процесорів, універсальних для реалізації заданого набору функцій.

Теоретичні відомості

Арифметико-логічний пристрій (АЛП) є основним вузлом будь-якого цифрового процесора, що забезпечує виконання максимальної кількості операцій обробки і перетворення даних для отримання шуканого результату.

Від раціональності внутрішньої організації АЛП значною мірою залежать показники апаратної складності процесора цифрової ЕОМ та його продуктивності в ході виконання покладених на нього функцій.

Визначення принципів функціонування арифметико-логічного пристрою

Припустимо, що необхідно розробити пристрій керування для виконання операції 0.5А2+2В за допомогою арифметико-логічного пристрою, функціональну схему якого наведено на рис. 8.2; А та В - цілі беззнакові додатні числа розрядності n , представлені в прямому коді.

Проаналізуємо особливості завдання. Операцію умовно можна розділити на три операції:

Змінна1 := 0.5А2 ; (1)

Змінна2 := 2В ; (2)

Результат := Змінна1 + Змінна2 . (3)

Як видно, перші дві операції є взаємонезалежними і можуть виконуватись паралельно. Проаналізуємо їх більш детально.

Обидві операції, що розглядаються, передбачають множення на константу. Більш детальний аналіз показує, що операцію множення на константу при обчисленні значення Змінна1 можна замінити операцією ділення на 2, оскільки 0.5=1/2.

Відомо, що операцію множення або ділення двійкового числа на 2n (де n – натуральне число) можна замінити на операцію зсуву цього числа на n розрядів відповідно вліво або вправо (зазначимо, що при цьому слід враховувати можливість втрати розрядів).

В нашому випадку n=1, що відповідає зсуву на 1 розряд. Операцію Змінна1 := 0.5А2 можна також записати як послідовне виконання операції ділення на 2 (зсуву вправо на 1 розряд вліво) та множення отриманого проміжного результату на співмножник А : Змінна1 := (А/2)*А .

Для реалізації операції множення при обчисленні значення змінної А скористаємось методом, при якому добуток визначається як результат N-кратного додавання значень множеного, де N дорівнює множнику (наприклад, Х*3=Х+Х+Х).

Примітка 9.1. Без огляду інших методів зазначимо, що такий підхід дозволяє спростити алгоритм виконання операції множення та необхідні апаратні засоби, але характеризується низькою швидкодією, що призвело до відмови від його практичного використання. Цей метод наводиться для прикладу і його використання в реальних проектах небажане (окрім випадків, коли це зумовлено завданням).

Це дозволить записати вираз (1) у вигляді:

На підставі проведеного аналізу виконання операції 0.5А2+2В можна записати як послідовність виконання двох етапів.

Етап 1:

Змінна1 := 0.5А (зсув А на 1 розряд вліво) ;

Змінна2 := 2В (зсув В на 1 розряд вправо).

Етап 2:

Змінна2 := Змінна2 +Змінна1 (дана операція повторюється А разів).

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

Проаналізуємо особливості апаратної реалізації зазначеної методики наявними засобами (див. рис.9.1).

Для запису вхідних значень операндів А та В необхідно передбачити в схемі два регістра розрядності не менше n.

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

Стосовно регістра операнда А робимо висновок, що він повинен передбачати можливість виконання операції зсуву вліво для реалізації операції ділення на 2 (або множення на 0.5). В ході ділення на 2 розрядність діленого зменшується на один розряд і операнд А буде мати розрядність n-1 (молодший розряд, який визначає дробову частину результату операції А/2, умовимось в цьому прикладі відкидати - завданням не передбачено округлення результату при діленні). Таким чином, пропонованої розрядності регістра операнда А достатньо для реалізації операції 0.5А і зберігання отримуваного при цьому результату.

Стосовно регістра операнда В робимо висновок, що він повинен передбачати можливість виконання операції зсуву вправо для реалізації операції множення на 2. Множення на 2 (зсув вправо) збільшує розрядність операнда на один розряд. Оскільки використання регістра розрядності n при виконанні операції зсуву вправо може призвести до втрати значущого старшого розряду, слід змінити початкові вимоги і обрати розрядність регістра операнда В рівною n+1 (зазначимо, що це ще не кінцеве значення).

Проаналізуємо розрядність регістра, необхідного для обчислення та зберігання результату операції.

Як відомо, результатом операції множення двох двійкових чисел розрядності n та m є двійкове число розрядності n+m (при цьому певна кількість старших розрядів може дорівнювати нулю в залежності від значень співмножників). Відповідно, результат операції (А/2)*А, при n-розрядному значенні А, може мати максимальну розрядність 2n-1. Додавання до результату операції (А/2)*А значення з розрядністю, рівною n+1, може надати результат з максимальною розрядністю 2n (при однократному додаванні розрядність числа може збільшитись лише на один розряд: наприклад, 101+100=1001). Таким чином, розрядність регістра результату повинна бути не меншою 2n.

Оскільки операція додавання передбачає можливість запису результату в регістр одного з операндів (з метою економії апаратних ресурсів та спрощення схеми) і завданням не зумовлена необхідність збереження початкових значень операндів, оберемо для розміщення результату операції регістр операнда В. Це, відповідно, потребує визначення його розрядності не меншою 2n.

Перейдемо до аналізу функціональної схеми, наведеної на рис.8.2. На схемі зображені наступні функціональні складові пристрою, що розробляється:

RG1 - регістр розрядності n з можливістю виконання операції зсуву вліво. Призначений для зберігання операнда А і виконання операції А/2 (зсув на один розряд вліво);

RG2 - регістр розрядності 2n з можливістю виконання операції зсуву вправо. Призначений для зберігання операнда В і виконання операції 2*В (зсув на один розряд вправо), а також для накопичення проміжних результатів і зберігання кінцевого результату виконання операції 0.5А2+2В;

SM - суматор розрядності 2n. Призначений для виконання арифметичної операції додавання вмісту регістрів RG1 та RG2 з видачею суми на входи регістра RG2;

ST - лічильник числа циклів. Призначений для підрахунку кількості разів виконання операції RG2:= RG2 + RG1 шляхом зменшення на одиницю значення А, яке попередньо заноситься в лічильник, та для формування сигналу готовності результату (при нульовому вмісті лічильника);

MX1 - мультиплексор комутації прямого та зворотного коду операнда А. Призначений для подання на суматор прямого коду операнда А за умови, що він записаний до регістру RG1 в зворотному коді;

MX2 - мультиплексор комутації прямого та зворотного коду операнда В. Призначений для подання на суматор прямого коду операнда В за умови, що він записаний до регістру RG2 в зворотному коді.

Примітка 9.2. Завдання, що розглядається, не потребує для свого вирішення наявності в складі пристрою мультиплексорів. Останні включені до схеми для пояснення особливостей, які мають принципове значення для побудови керуючих автоматів.

На рис. 9.1 також наведені наступні сигнали керування:

y1 – зсув вмісту регістра RG1 на один розряд вліво;

y2 – зсув вмісту регістра RG2 на один розряд вправо;

y3 – вибір активного значення операнда А мультиплексором MX1. Якщо y3=1, на виходи мультиплексора поступає значення з прямих виходів регістра RG1, інакше – з інверсних;

y4 – вибір активного значення операнда В мультиплексором MX2. Якщо y4=1, на виходи мультиплексора поступає значення з прямих виходів регістра RG2, інакше – з інверсних;

y5 – запис даних з виходів суматора SM в регістр RG2;

y6 – декремент лічильника ST.

Також на схемі наведено єдиний наявний сигнал умови:

р1 – сигнал, що сповіщає про наявність нульового значення в лічильнику ST і одночасно є ознакою завершення виконання заданої операції 0.5А2+2В.

Примітка 9.3. З урахуванням особливостей організації алгоритму виконання операції 0.5А2+2В отримання активного значення сигналу р1, який свідчить про досягнення значення в лічильнику циклів ST до нуля і є ознакою закінчення виконання циклів множення, одночасно є ознакою готовності результату і може використовуватись для ооповіщення зовнішніх пристроїв про завершення робочого циклу процесора. В більшості завдань лабораторних робіт можливості використання одного із наявних сигналів для ооповіщення зовнішніх пристроїв про готовність результату не передбачено, тому з цією метою необхідно ввести до переліку наявних доатковий керування відповідного призначення.

На даному етапі нами визначені і описані суттєві для вирішення поставленої задачі особливості апаратної реалізації АЛП та надано перелік доступних до використання при роботі з ним сигналів керування та умов, що дає можливість перейти до розгляду порядку виконання операції 0.5А2+2В з допомогою наявних апаратних засобів.

Д ля виконання заданої операції апаратними засобами АЛП потрібно виконати послідовність операцій нижчого рівня на рівні складових частин АЛП. Операції, що виконуються на рівні апаратних засобів АЛП для виконання певної заданої операції, називають мікроопераціями.

Оскільки фіксувати результати виконання будь-яких змін в двійкових кодах даних здатні лише схеми з елементами пам’яті (послідовнісні), під мікроопераціями розуміють дію в АЛП, що призводить до зміни значень на рівні елементів пам’яті АЛП (тригери, регістрові структури, лічильники і т.д.) !!! Зрозуміло, що перед фіксацією в елементах пам’яті АЛП змінених даних останні можуть зазнавати різноманітних перетворень при проходженні через вузли комбінаційного типу (суматори, перетворювачі кодів і т.д.).

Реалізація будь-якої операції в АЛП забезпечується виконанням певної послідовності мікрооперацій. Упорядкований опис виконання операцій мікрооперацій в ході реалізації певної вищої операції називають мікроалгоритмом виконання цієї операції апаратними засобами АЛП.

Оскільки мікроалгоритм роботи АЛП при виконанні заданої операції повинен максимально повно відображувати перелік мікрооперацій, необхідних для отримання потрібного результату, та задавати чітку послідовність їх виконання, такий алгоритм називають змістовним мікроалгоритмом.

Мікрооперації при розробці мікроалгоритмів прийнято позначати великими літерами “Y” з привласненням їм відповідної нумерації.

Примітка 9.4. Хоча і мікрооперації і сигнали керування позначаються при описі АЛП літерами “Y” і “y” відповідно, прямого зв’язку між їх назвами та в ході присвоєння нумерації немає (літери “Y” і “y” мають різний розмір і різне призначення у відповідних задачах). В той же час, наявний набір керуючих сигналів при різних варіантах їх комбінування між собою та в часі повинен забезпечувати можливість реалізації наявними апаратними засобами всіх мікрооперацій, наявних в змістовному мікроалгоритмі роботи АЛП.

Перед тим, як приступити до розробки мікроалгоритму роботи пристрою, умовимось, що вхідні значення операндів попередньо записані до регістрів RG1 та RG2 відповідно, а в лічильнику ST записане значення А.

Змістовний мікроалгоритм роботи арифметико-логічного пристрою наведено на рис. 9.2.

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

Після встановлення значення сигналу “Пуск”=1 виконується послідовність мікрооперацій:

Y1 - зсув вмісту регістра RG1 на один розряд вліво. Запис Y1: RG1=R1RG1 означає, що мікрооперацією Y1 регістру RG1 привласнюється (RG1=) попереднє значення з регістра RG1 (=R1RG1) зсунуте вправо (=R1RG1) на 1 розряд (=R1RG1);

Y2 - зсув вмісту регістра RG2 на один розряд вліво. Запис Y2: RG2=L1RG2 означає, що мікрооперацією Y2 регістру RG2 привласнюється (RG2=) попереднє значення з регістра RG2 (=L1RG2) зсунуте вліво (=L1RG2) на 1 розряд (=L1RG2);

Y3 - додавання до значення, яке записане в RG2, значення з регістра RG1. Запис Y3:RG2=RG2+RG1 означає, що мікрооперацією Y3 регістру RG2 привласнюється (RG2=) значення результату операції арифметичного додавання (RG2+RG1) значень, попередньо зафіксованих в регістрах RG2 і RG1 (RG2+RG1) відповідно;

Y4 - декремент лічильника ST. Запис Y4: ST=ST-1 означає, що мікрооперацією Y4 лічильнику ST привласнюється (ST=) попередньо зафіксоване значення з того ж лічильника ST, зменшене на 1 (ST-1) виконується операція декремента вмісту лічильника.

Для досягнення максимальної продуктивності роботи АЛП важлим є забезпечення максимального ступеня паралелізму (одночасності) виконання мікрооперацій. Мікроперації, що мають виконуватися одночасно, записуються в блок-схемі мікроалгоритму в одній вершині.

Як видно з наведеного прикладу, мікрооперації Y1 та Y2 (блок 2 мікроалгоритму) виконуються паралельно, після чого, також паралельно, виконуються мікрооперації Y3 та Y4 (блок 3 мікроалгоритму). Це повністю відповідає наданим в ході попередньо проведеного аналізу рекомендаціям.

В блоці 4 мікроалгоритму перевіряється наявність активного значення сигналу умови р1. Якщо р1=0 (значення в лічильнику не дорівнює нулю), відбувається перехід до повторного виконання мікрооперацій Y3 та Y4 (циклічне виконання цих мікрооперацій забезпечує реалізацію операції множення). Якщо р1=1, пристрій переходить в режим очікування моменту зняття активного значення сигналу “Пуск” (блок 5 мікроалгоритму). В цьому режимі зовнішній пристрій може реалізовувати зчитування з пристрою, що розробляється, результату операції 0.5А2+2В.

Зняття сигналу “Пуск” свідчить про завершення роботи мікроалгоритму і пристрій переходить в початковий стан (очікування сигналу запуску). В цьому режимі зовнішній пристрій також може реалізовувати зчитування з пристрою, що розробляється, результату операції 0.5А2+2В (якщо зчитування не проведене раніше). За необхідності, на цьому етапі зовнішній пристрій записує нові початкові данні і знов запускає мікроалгоритм на виконання.

Примітка 9.5. В розглянутому прикладі зчитування результату операції може виконуватись на двох останніх етапах (очікування зняття сигналу “Пуск” та після зняття сигналу “Пуск”). Загалом, час зчитування результату операції визначається особливостями апаратної реалізації процесора в цілому і його АЛП зокрема виходячи з умов готовності та збереження результату в різних режимах.

Якщо проаналізувати наявний в АЛП набір керуючих сигналів та перелік мікрооперацій, що реалізуються відповідно до розробленого мікроалгоритму виконання операції, можна визначити сукупність сигналів керування, які забезпечують виконання кожної мікрооперації. Відповідний перелік сигналів керування, які забезпечують виконання мікрооперацій Y1-Y4 (див. рис.9.1 та рис.9.2), наведено в табл. 9.1.

Таблиця 9. 1. Перелік керуючих сигналів, що забезпечують виконання мікрооперацій

Мікрооперація

Y1

Y2

Y3

Y4

Перелік активних сигналів керування, які забезпечують виконання мікрооперації

y1

y2

y3;y4;y5

y6