ЗАТВЕРДЖЕНО
Наказ Міністерства освіти і науки України
29 березня 2012 року № 384
Форма № Н-6.01
Вінницький національний технічний університет
(повне найменування вищого навчального закладу)
Кафедра програмного забезпечення
(повна назва кафедри, циклової комісії)
КУРСОВА РОБОТА
з дисципліни «Архітектура комп’ютера»
(назва дисципліни)
на тему: Синтез операційного та керуючого автомату для виконання
на тему:арифметичної операції в двійковій системі числення
Студента III курсу ПІ-15б (з/н) групи
напряму підготовки 6.050103 «Програмна інженерія»
Шарапатюка М.Б.
(прізвище та ініціали)
Керівник: к.т.н., доц. Войтко В.В.
(посада, вчене звання, науковий ступінь, прізвище та ініціали)
Національна шкала ________________
Кількість балів: __________Оцінка: ECTS _____
Члени комісії __________ ____________________
(підпис) (прізвище та ініціали)
__________ ____________________
(підпис) (прізвище та ініціали)
__________ ____________________
(підпис) (прізвище та ініціали)
м. Вінниця – 2018 рікМіністерство освіти і науки України
Вінницький національний технічний університет
Факультет інформаційних технологій та комп’ютерної інженерії
ЗАТВЕРДЖУЮ
Зав. кафедри ПЗ, проф., д.т.н.
______________ А.М. Пєтух
(підпис)"14" лютого 2018 р.
ІНДИВІДУАЛЬНЕ ЗАВДАННЯ
на курсову роботу з дисципліни "Архітектура комп’ютера"
студента Шарапатюка Максима Богдановича
ТЕМА: Синтез операційного та керуючого автомату для виконання арифметичної операції в двійковій системі числення
Постановка задачі
Синтезувати операційний автомат для виконання заданої арифметичної операції в двійковій системі числення та синтезувати керуючий автомат заданої логіки.
Вхідні дані
Арифметична операція: множення просте зі старших розрядів з плаваючою комою у доповняльних кодах.
Логіка реалізації керуючого автомату: програмована логіка з примусовою адресацією.
Затверджено на засіданні кафедри ПЗ, протокол №4 від 14 лютого 2018 року
Дата видачі "14" лютого 2018 р.
Керівник _____________ Войтко В.В.
Завдання отримав ст. гр. ПІ-15б _____________ Шарапатюк М.Б.
АНОТАЦІЯ
В даній курсовій роботі досліджено принцип побудови керуючого та операційного автоматів, побудовано блок-схеми алгоритму множення чисел з плаваючою комою в доповняльних кодах.Також розроблено операційний та керуючий автомати з програмованою логікою і примусовою адресацією.
ЗМІСТ
ВСТУП 5
1 АНАЛІЗ ЗАВДАННЯ І ВИБІР МЕТОДУ СИНТЕЗУ 6
2 РЕАЛІЗАЦІЯ МЕТОДУ ВИКОНАННЯ АРИФМЕТИЧНОЇ ОПЕРАЦІЇ В ДВІЙКОВІЙ СИСТЕМІ ЧИСЛЕННЯ 8
2.1 Розробка алгоритму виконання операції множення в двійковій системі числення 8
2.2 Приклад виконання операції множення 10
3 СИНТЕЗ ОПЕРАЦІЙНОГО АВТОМАТА………………………………….13
4 СИНТЕЗ КЕРУЮЧОГО АВТОМАТА 15
4.1 Аналіз принципу дії автомата з програмованою логікою з примусовою адресацією 15
4.2 Побудова граф-схеми автомата 17
4.3 Структурна схема керуючого автомата 21
ВИСНОВКИ 23
ПЕРЕЛІК ПОСИЛАНЬ 24
ВСТУП
Архітектура комп’ютера - це спосіб організації взаємодії компонентів, що складають комп’ютер. Для спрощення розуміння часто наводяться опису основних характеристик ключових компонентів.
Всі сучасні комп’ютери грунтуються на принципах обробки даних, запропонованих Джоном фон Нейманом в 1946 році. Відмітною особливістю є циклічний спосіб виконання будь-якого процесу, при якому операнди і дані розміщуються в одному і тому ж блоці пам’яті. До речі, саме цей факт пояснює, чому архітектура комп’ютера фон Неймана використовується у всіх сучасних ЕОМ. Втім, спроби відійти від неї робилися вже давно.
Центральний процесор – обчислювальне ядро всього комп’ютера. Представлений великою мікросхемою з мільярдами транзисторів всередині, формуючими функціональні блоки. Будь запущена на виконання програма непомітно для користувача перетвориться (інтерпретується) в машинний код і виповнюється саме на центральному процесорі.
Оперативна пам’ять є необхідною частиною будь-якого обчислювального пристрою, навіть найпростішого калькулятора. У комп’ютерах транзистори пам’яті реалізовані в мікросхемах, припаяних до планки текстоліту з низкою мідних ковзних контактів.
Крім внутрішніх комплектуючих, існує величезна кількість зовнішніх пристроїв. Лише завдяки їм вдається забезпечувати взаємодію людини і машини.
1 АНАЛІЗ ЗАВДАННЯ І ВИБІР МЕТОДУ СИНТЕЗУ
Завдання до курсової роботи передбачає проектування процесору для виконання операції множення чисел у доповняльних кодах, починаючи зі старших розрядів, з плаваючою комою та побудову операційного автомату і керуючого автомату з примусовою адресацією.
Проектування керуючого автомата проводитиметься наступним шляхом: побудова системи логічних функцій, що виражаються залежністю вихідних сигналів та сигналів збудження пам’яті від вхідних сигналів і станів автомата та синтез комбінаційних схем[1].
Нижче приведений алгоритм побудови керуючого автомата:
Приведення алгоритму та побудова граф схеми арифметичної операції у двійковій системі числення.
Побудова закодованої схеми автомата.
Проведення розмітки закодованої ГСА станами автомата.
Побудова графа переходів автомата.
Вибір елементів пам’яті для реалізації запам’ятовуючої частини.
Побудова суміщеної таблиці переходів та виходів.
Визначення та мінімізація логічних функцій для забезпечення вхідних сигналів тригерів та вихідних сигналів.
Приведення логічної функції до певного базису (за необхідності).
Побудова функціональної схеми автомата.
Аналіз та визначення основних параметрів пристрою.
Операційний автомат складається із набору регістрів з комбінаційною логікою у входах запам'ятовуючих елементів регістрів. Вхідні сигнали операційного автомату ототожнюються з вихідними сигналами керуючогоавтомата–сигналами мікрооперацій. Ці сигнали визначають перетворення множини станів операційних автоматів. Вихідні сигнали операційних автоматів –це рядки значень логічних умов, які характеризують стани його регістрів.
В основі синтезу керуючого автомата є принцип мікропрограмного керування[2], який полягає в тому, що будь-яка операція розглядається як складна, що складається з простіших операцій, які називаються мікроопераціями. Автомати з програмованою логікою можуть просто змінювати мікропрограми (замінити коди які записуються в пам’яті).
Для наочного зображення алгоритму виконання операцій використовують граф-схеми алгоритмів.
Граф-схема алгоритму (ГСА) –орієнтований зв'язаний граф, який містить одну початкову вершину (Початок), одну кінцеву вершину (Кінець) і довільну кількість умовних і операторних вершин. Вершина "Початок" входів не має. Вершина "Початок" і будь-яка операторна вершина мають по одному виходу. Вершина "Кінець" виходів не має. Будь-яка умовна вершина має два виходи, які позначаються символами "Так" і "Ні". Замість цих символів можуть бути використані цифри "1" і "0" відповідно.
2 РЕАЛІЗАЦІЯ МЕТОДУ ВИКОНАННЯ АРИФМЕТИЧНОЇ ОПЕРАЦІЇ В ДВІЙКОВІЙ СИСТЕМІ ЧИСЛЕННЯ
2.1 Розробка алгоритму виконання операції множення в двійковій системі числення
Далі приведено алгоритм простого множення двійкових чисел:
Вносимо значення мантиси числа А до РгАм, а порядку числа А до РгАп.
Вносимо значення мантиси числа В до РгВм, а порядку числа В до РгВп.
Додаємо порядки СМп:=РгВм+РгАп
Присвоюємо суматору СМ значення 0 і в лічильник заносимо число кількості тактів множення Ліч:=16.
Якщо множник РгА від’ємний, то додаємо поправку СМ:=СМ+(не)РгА.
Аналізуємо старший розряд числа В ( РгВ ), якщо він дорівнює 0, то переходимо до пункту 8, інакше до суматора СМ додаємо число А.
Виконуємо зсув на один розряд вліво суматора СМ і регістру РгВ, вміст лічильника зменшуємо на 1 і переходимо в пункт. 9 нашого алгоритму.
Аналізуємо розряд РгВ – якщо він дорівнює 1, то переходимо до пункту 7, інакше виконуємо зсув на два розряди вправо суматора СМ і регістру РгВ. Вміст лічильника зменшуємо на 2.
Аналізуємо вміст лічильника, якщо він більше 0, то переходимо в пункт 6.
Якщо знакові розряди СМм не рівні між собою, то виконуємо нормалізацію СМм:=L(1,СМм), СМп:=СМп+[-1]доп
Отриманий результат зберігається в суматорах СМм і СМп.
Структурна блок схема алгоритму:
Рисунок 2.1 – Блок схема алгоритму множення
2.2 Приклад виконання операції множення
Виконаємо множення за розробленим алгоритмом для заданих чисел.
Переведемо їх в двійкову систему числення і запишемо їх у вигляді з фіксованою комою
А = 41,3210 = 101001.01010001112 = 0,10100101010001112 (20110
В = -14,5310 = –1110.1000010100012 = –0,11101000010100012 (20100
Запишемо машинне зображення операндів в доповняльому коді:
РгА=00,1010010101000111
РгВ=11,0001011110101111
Також при введенні поправки будемо використовувати код
(не)А=11,0101101010111000
Додамо порядки:
00000110
00000100
000010102 = 1010
Таблиця 2.1 – Приклад виконання операції множення
СМм
РгВм
ПРимітки
0000000000000000
0001011110101111
РгВм[1]=0; РгВм[12]=0;
РгВм:=L2РгВм; CMм:=L2СМм
000000000000000000
__01011110101111
РгВм[1]=0; РгВм[12]=1;
РгВ:=R1РгВм; CM:=R1СМм
0000000000000000000
1010010101000111
+
0001010010101000111
___1011110101111
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
00010100101010001110
____011110101111
РгВм[1]=0; РгВм[12]=1;
РгВ:=R1РгВм; CM:=R1СМм
00010100101010001110
1010010101000111
+
000110011101001100011
_____11110101111
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
0001100111010011000110
1010010101000111
+
0001110001101000001101
______1110101111
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
Продовження таблиці 2.1
00011100011010000011010
1010010101000111
+
00011101101100101100001
_______110101111
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
000111011011001011000010
1010010101000111
+
000111100101100000001001
________10101111
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
0001111001011000000010010
_________0101111
РгВм[1]=0; РгВм[12]=1;
РгВ:=R1РгВм; CM:=R1СМм
00011110010110000000100100
1010010101000111
+
00011110100000010101101011
__________101111
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
000111101000000101011010110
___________01111
РгВм[1]=0; РгВм[12]=1;
РгВ:=R1РгВм; CM:=R1СМм
0001111010000001010110101100
1010010101000111
+
0001111010001011101011110011
____________1111
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
00011110100010111010111100110
1010010101000111
+
00011110100100001101100101101
_____________111
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
000111101001000011011001011010
1010010101000111
+
000111101001001101101110100001
______________11
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
0001111010010011011011101000010
1010010101000111
+
0001111010010100101110010001001
_______________1
РгВм[15]=1;
CMм:=CMм+РгАм
РгВ:=L1РгВм; CM:=L1СМм
Оскільки В – число від’ємне, то до отриманого результату слід додати поправку: СМ:=СМ+(не)РгА,
00,00001111010010100101110010001001
11,01011010101110001111111111111111
11,01101010000000110101110010001000
Отримано результат в доповняльому коді. Переведемо його в прямий код і в десяткову систему числення:
Спр=–0,01101010000000110101110010001000(210
С= –1001010111,111001010001101111111
С10= –599,894958
Перевірка результату на калькуляторі показує вірний результат:
А(В = 41,32((-14,52)= –599,9664
Похибка обчислення : ( = | 599,894958– 599,9664| = 0,071442
(=((/ 599,9664) ( 100% =0,0119%
Отже, похибка незначна. Множення виконано вірно.
3 СИНЕЗ ОПЕРАЦІЙНОГО АВТОМАТА
Для реалізації множення чисел у формі з плаваючою комою, починаючи зі старших розрядів у множнику зі зсувом суми часткових добутків, потрібні такі функціональні вузли:
Для зберігання мантис операндів потрібні регістри РгАм, РгВм.
Для зберігання порядків операндів потрібні регістри РгАп, РгВп.
Для накопичення часткових добутків необхідно використати накопичувальний суматор СМ доповняльного коду.
Для формування поправки (не)РгА використовується схема формування оберненого коду СхФОК.
Для підрахування кількості кроків множення використовується лічильник (ЛІЧ).
Для операційного автомату визначимо функції входів:
Y1: РгАм:=Шд вх
Y2: РгАп:=Шд вх
Y3: РгВм:=Шд вх
Y4: РгВп:=Шд вх
Y5: СМм:=0
Y6: СМп:=0
Y7: Ліч:=8
Y8: СМп:=СМп+РгАп
Y9: СМп:=СМп+РгВп
Y10: СМм:=СМм+(не)РгАм
Y11:СМм:=СМм+РгАм
Y12: РГВМ:=L1РГВМ
Y13: СМм:=L1СМм
Y14: Ліч: = Ліч - 1
Y15:РгВм:=L2РгВм
Y16:СМм:=L2СМм
Y17:Ліч: = Ліч - 2
Y18:СМп:=СМп+[-1]доп
Y19:Шд вих:=СМм
Y20:Шд вих:=СМп
X1: РгВ [15]=1
X2: РгВ [14]=1
X3: Ліч:=Ліч-1
X4: РгВ > 0
X5: СМм[0]= СМм[1]
Рисунок 3.1 – Схема операційного автомата
4 СИНТЕЗ КЕРУЮЧОГО АВТОМАТА
4.1 Аналіз принципу дії автомата з програмованою логікою
В автоматах з "жорсткою" логікою[3] алгоритм керування в кінцевому результаті представлений схемою і зміна такого алгоритму потребує заново здійснювати синтез схеми автомата. Це не завжди зручно, особливо на стадії налагодження алгоритмів керування. Цього можна уникнути, використовуючи для побудови керуючого автомата принцип програмного керування з операційно-адресною структурою керуючих слів. В цьому випадку алгоритм керування представляється впорядкованою сукупністю керуючих слів (мікрокоманд). Мікрокоманда містить інформацію про мікрооперації, які повинні виконуватись в даному такті роботи пристрою, і інформацію про адресу наступної мікрокоманди. Сукупність мікрокоманд, які виконують одну машинну команду або процедуру, утворює мікропрограму. Мікропрограма може зберігатись в ЗП. Для мікропрограм, що не змінюються в робочому режимі, використовують ПЗП. Звичайно мікрокоманда складається з двох частин: операційної та адресної.
На практиці часто користуються комбінованим мікропрограмуванням, при якому операційна частина розділяється на поля, в межах яких керуючі сигнали кодуються вертикальним способом, тобто позиційними кодами [3].
Адресна частина мікрокоманди призначена для визначення адреси наступної мікрокоманди. В найпростішому випадку, коли автомат для переходу на наступну мікрокоманду допускає аналіз тільки однієї логічної умови, в адресній частині виділяють поле умов, де вказується код цієї логічної умови. Окрім цього адресна частина містить поле адрес, де вказуються адреси мікрокоманд, що слідують за поточною мікрокомандою. Іноді, з метою скорочення довжини мікрокоманди, вказують тільки одну адресу, а іншу отримують з неї шляхом додавання одиниці за допомогою комбінаційного лічильника. Розглянутий спосіб називають примусовою адресацією[4] з одним або двома адресними полями (рис. 3.1).
Рисунок 4.1 – Формати адресної частини мікрокоманди з умовами переходу для примусової адресації
Для наочного зображення алгоритму виконання операцій використовують граф-схеми алгоритмів.
Основними складовими узагальненої структури керуючого автомату з програмованою логікою при комбінованому мікропрограмуванні і примусовою адресацією з двома адресними полями є регістр мікрокоманди РГМК, призначений для зберігання мікрокоманди протягом такту, пам'ять мікропрограм ПМП, дешифратори операційних полів DC1, DC2, DC3, мультиплексор логічних умов МS, та мультиплесор адресних полів (показаний "жирною" лінією). В пристрої мікрокоманди послідовно, починаючи з початкової, читаються з ПМП в РГМК. Протягом такту за станом РГМК дешифраторами формуються відповідні керуючі сигнали, а за допомогою мультиплексорів в залежності від значень логічних умов визначається адреса наступної мікрокоманди.
4.2 Побудова граф-схеми автомата
При побудові пристроїв керування з програмованою логікою важливим етапом є розробка мікропрограми, яку іноді традиційно називають картою прошивки ПЗП.
До основних етапів синтезу керуючих автоматів з програмованою логікою слід віднести:
вибір способу кодування керуючих сигналів, типу адресації та умов переходу;
розподіл керуючих сигналів по полях операційної частини мікрокоманди (для комбінованого мікропрограмування) і кодування керуючих сигналів;
кодування логічних умов;
складання мікропрограми;
побудова структурної та функціональної схеми автомата;
аналіз результатів проектування і визначення основних параметрів пристрою.
В випадку комбінованого мікропрограмування при розподілі керуючих сигналів по полях операційної частини мікрокоманди враховують, що керуючі сигнали, які разом зустрічаються в операційних вершинах[5], повинні бути розміщені в різних полях. Для такого розміщення можна скористатися методом прямого включення, який передбачає формалізацію процесу розподілу. Слід також враховувати, що для більш ефективного використання розрядної сітки бажано, щоб кількість керуючих сигналів в одному полі наближалась до величини 2к-1, де к – розрядність цього поля (нульовою комбінацією кодується відсутність керуючих сигналів в полі).
При складанні мікропрограми використовують закодовану ГСА, коди керуючих сигналів і логічних умов та умови переходу. Мікропрограма має структуру мікрокоманди. Приклад розробки мікропрограми при комбінованому мікропрограмуванні і примусовій адресації з двома адресними полями, приведений нижче.
Використовуючи вхідні та вихідні сигнали операційного автомата, побудуємо граф-схему автомата, зображену на рисунку 3.2
1
0
1
1
1
0
Рисунок 4.2 – Граф-схема автомата
Щоб побудувати таблицю переходів (табл. 4.3), потрібно побудувати таблицю кодування керуючих сигналів (табл. 4.1), і таблицю кодування умов переходу (табл. 4.2).
Таблиця 4.1 – Таблиця кодування керуючих сигналів
Y
Код Y
Y1, Y2
0001
Y3, Y4
0010
Y5, Y6, Y7
0011
Y8
0100
Y9
0101
Y10
0110
Y11
0111
Y12, Y14
1000
Y13
1001
Y15, Y16, Y17
1010
Y18
1011
Y19,Y20
1100
Таблиця 4.2 – Таблиця кодування умов переходу
Х
Код
Х0
000
Х1
001
Х2
010
Х3
011
Х4
100
Х5
101
Безумовний
перехід
111
Таблиця 4.3 – Таблиця переходів
Адреса
Y
Х
А0
00000
0001
000
*
00001
0010
000
*
00010
0011
000
*
00011
0100
000
*
00100
0101
001
00110
00101
0110
000
*
00110
0000
010
00111
0111
000
*
01000
1000
000
*
01001
1001
000
01111
01010
0000
100
00110
01011
0000
101
01101
01100
1001
000
*
01101
1011
000
*
01110
1100
111
00000
01111
0000
011
01000
10000
1010
111
01010
4.3 Структурна схема керуючого автомата
Узагальнена структура керуючого автомату з програмованою логікою при комбінованому мікропрограмуванні і примусовою адресацією з двома адресними полями приведена для даного прикладу на рис. 4.3. В пристрої мікрокоманди послідовно, починаючи з початкової, читаються з ПМП в РГМК. Протягом такту за станом РГМК дешифратора формуються відповідні керуючі сигнали, а за допомогою мультиплексора в залежності від значень логічних умов визначається адреса наступної мікрокоманди.
Рисунок 4.3 – Структурна схема керуючого автомата
ВИСНОВКИ
Під час виконання курсової роботи було розглянуто принцип виконання операції множення двійкових чисел з фіксованою комою у доповняльних кодах, починаючи зі старших розрядів.
У першому розділі було проаналізовано завдання до курсової роботи та обрано метод синтезу.
У другому розділі досліджено алгоритм виконання операції множення двійкових чисел з фіксованою комою у доповняльних кодах, починаючи зі старших розрядів, побудовано блок-схему даного алгоритму та складено приклад виконання операції множення на основі вибору двох довільних 8-розрядних чисел (А = 219, В = -166 ).
У третьому розділі проведено синтез операційного автомата. Було визначено вхідні та вихідні сигнали, на основі яких побудовано схему операційного автомата.
У четвертому розділі розроблено керуючий автомат для реалізації операції множення. Було складено блок-схему, граф-схему переходів, таблицю переходів, визначено вихідні сигнали, на основі яких було побудовано схему
автомата Мура з жорсткою логікою.
ПЕРЕЛІК ПОСИЛАНЬ
Пєтух Анатолій Михайлович. Схемотехніка ЕОМ : навч. посібник / А. М. Пєтух, Д. Т. Обідник - Вінниця : ВДТУ, 1999. - 84 с.: іл. табл.
Пєтух Анатолій Михайлович. Прикладна теорія цифрових автоматів. Ч. 1: навч. посіб. / А.М. Пєтух, В.В. Войтко. - Вінниця: ВДТУ, 2001. - 76 с.
ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
Эндрю Таненбаум. Архитектура компьютера. 5-е издание. / Э.Таненбаум; пер. с англ. ООО «Питер Пресс» – СПб: Питер, 2012. – 848 c. – ISBN 5-469-01274-3.
Болотовский Ю. Б., Таназлы Г. И. OrCAD. Моделирование. "Поваренная" книга. / Ю.Б. Болотовский, Г.И. Таназлы – М.: Солон-Пресс, 2005. – 200 с. - ISBN 5-98003-178-2