- управління і координацію роботи основних вузлів МП.
1.2 Вибір підходящої структури процесорного елемента та його опис
Структура створеного процесорного елемента зображена в додатку 1, розшифровка позначень, використаних у схемі, наведена в додатку 2.
Створюючи власну структуру процесорного елемента я вирішив, що його розрядність зручно зробити 8 біт, розрядність адрес теж я вирішив зробити 8 біт. Відповідно розрядність абсолютно всіхрегістрів, а саме регістрів загального призначення, допоміжних регістрів АЛП, регістру даних пам’яті, регістру адрес пам’яті (MAR), лічильника команд (PC), регістру команд(IR) та регістру станів (PSW) — теж 8 біт.
Команди –однооперандні. Розміркодуоперації –фіксований, і складає 8біт. Структура команди має такий вигляд:
15 8 | 72 | 1 0 |
Операнд | Код операції | Rm |
Операнд вибирається після дешифрації команди в тому випадку, якщо він потрібен. Для спрощення вважається, що операнд завжди присутній, просто в деяких командах він не використовується.В нашому випадку операндом є константа, з якою виконується порівняння.Rm(біти 0 та 1)— це номер регістра, значення якого порівнюється зі значенням константи. Нехай для нашої команди біти 2-7 мають таке значення: 000001b.Так як регістрів у нас 4, то можливі наступні варіанти коду команди:
00000100 SBR R0, B
00000101SBR R1, B
00000110 SBR R2, B
00000111SBRR3, B
Кількість регістрів загального призначення (R0..R3) вибрана такою малою через нестачу портів введення/виведення в пристрої управління.
До структури процесора також ввійшов пристрій приросту. Його задача — збільшення значення 8-розрядного регістру PCна одиницю за один такт, при цьому не займаючи шину даних.
Безпосередньо до шини даних під’єднані всі структурні елементи процесора, крім пристрою управління та пристрою приросту. Останній може отримувати дані лише через регістр IR(через старший або молодший байт). Виведення даних з пристрою управління на шину можливе лише через IRoff. Під’єднати шину даних безпосередньо пристрою управління не вдалося через нестачу портів введення/виведення в пристрої управління.
Для економії часу на пересилку адреси наступної команди з регістру PCв регістр MARя вирішив з’єднати їх між собою безпосередньо. Завдяки цьому при вибірці кожної команди економиться один такт процесора. Крім того, пересилку PC-MARдля отримання наступної команди можна здійснювати під час виконання поточної команди, адже така пересилка не використовує шину даних. Тоді можна економити ще один такт при вибірці кожної команди.
На структурній схемі знехтувано лініями керування та лініями синхронізації, по яким пристрій управління посилає сигнали до всіх елементів процесора.
На рис 2 (додаток 1) показана розроблена архітектура процесора. В ній арифметико-логічний пристрій (АЛП) і всі регістри з'єднані однією загальною шиною. Це внутрішня шина процесора, яку не слід плутати з зовнішньою шиною, що з'єднує процесор з основною пам'яттю і пристроями введення\виведення.
Лінії даних і адреси зовнішньої шини пам'яті з'єднані з внутрішньою шиною процесора через регістр даних пам'яті, MDR, і регістр адреси пам'яті, MAR. Регістр MDR має два входи і два виходи. Дані можуть завантажуватися в нього або з зовнішньої шини пам'яті, або з внутрішньої шини процесора. Дані, що зберігаються в MDR також можуть бути поміщені на будь-яку з цих шин. Вхід регістра MAR з'єднаний із внутрішньою шиною і регістром PC, а його вихід — із зовнішньою. Керуючі лінії шини пам'яті з'єднані з дешифратором команди і керуючим логічним блоком.
Всі операції всередині процесора виконуються протягом періодів часу, що обумовлені тактовим сигналом процесора, або сигналом синхронізації, що надходить від пристрою управління, в якості якого в нашому випадку вступає мікроконтроллер. Сигнали, що керують конкретними операціями пересилання, активізуються на початку такту.
1.3 Реалізація пристрою управління
Пристрій управління реалізований у вигляді мікроконтроллера. Мікроконтроллер можна взяти будь-який, єдина вимога до нього — наявність п’яти потрів введення/виведення. Нехай було взято мікроконтроллер сімейства MCS-51.
4 порти введення/виведення під’єднані до управляючих ліній всіх елементів процесора. Інший 5-тий порт використовуються для введення чи виведення 8-бітних даних. Цей порт (P.2)може обмінюватись даними з молодшим та старшим байтом регістру IR.Призначення портів зображено на рис 1.
R0in P1.0 | • | • | P0.0 IRcopin |
R0out P1.1 | • | • | P0.1 IRcopout_mc |
R1in P1.2 | • | • | P0.2 Yin |
R1out P1.3 | • | • | P0.3 Yout |
R2in P1.4 | • | • | P0.4 Zin |
R2out P1.5 | • | • | P0.5 Zout |
R3in P1.6 | • | • | P0.6 CLK |
R3out P1.7 | • | • | P0.7 PCinc |
PCin P3.0 | • | • | P2.0 IR 0 |
PCout P3.1 | • | • | P2.1 IR 1 |
PC_to_MAR P3.2 | • | • | P2.2 IR 2 |
MFC P3.3 | • | • | P2.3 IR 3 |
MARin P3.4 | • | • | P2.4 IR 4 |
MRead P3.5 | • | • | P2.5 IR 5 |
MDRin P3.6 | • | • | P2.6 IR 6 |
MDRout P3.7 | • | • | P2.7 IR 7 |
• | P4.0 ALUe0 | ||
• | P4.1 ALUe1 | ||
• | P4.2 ALUe2 | ||
• | P4.3 ALUe3 | ||
• | P4.4 ALUm | ||
• | P4.5 IRoffin | ||
• | P4.6 IRoffout | ||
• | P4.7 |
Рис 1. Призначення портів пристрою управління
Розшифровка позначень
Біти портів для отримання сигналів (введення)
MFC— лінія для отримання сигналу готовності пам’яті.
Біти портів для керування (виведення):
Xin— лінія дозволу на вхід даних в регістр Xз шини.
Xout— лінія дозволу навидачу даних з регістру Xна шину.
Xin_mc— лінія дозволу на вхід даних в регістр Xз порта мікроконтроллера.
Xout_mc— лінія дозволу навидачу даних з регістру Xна порт мікроконтроллера.
CLK— лінія для сигналів синхронізації
PCinc— лінія для активації пристрою приросту
MRead— лінія для сигналу читання з пам’яті
PC_to_MAR— лінія дозволу пересилки даних з регістра PCв регістр MAR.
ALUe0.. ALUe0 — лінії для видачі на АЛП коду операції
ALUm— лінія вибору режиму роботи АПЛ (арифметичний / логічний)
Портдля обміну даними (введення/виведення)
IR— порт може обмінюватисьданими з молодшим байтом регістру IRта отримувати дані зі старшого байту регістру IR.
2.1 Загальний алгоритм виконання процесором команди SBRRm, B
Для виконання програми процесор вибирає команди з пам'яті по одній і виконує обумовлені ними дії. Команди вибираються з послідовних адрес пам'яті доти, доки не зустрінеться команда переходу або розгалуження. Для цього в лічильнику команд (PC) відслідковується адреса чергової команди, що підлягає виконанню. Після вибору цієї команди вміст регістра PC змінюється так, щоб він вказував на наступну команду в пам'яті в порядку розташування адрес. Команда розгалуження може завантажити в PC іншу адресу.
Загальний алгоритм роботи процесора можна зобразити наступним чином:
1. Вибірка машинної команди
2. Збільшення лічильника команд на довжину команди
3. Дешифрація команди
4. Вибірка операнду (якщо потрібно)
5. Виконання команди
Команда “SBRRm, B” — установка бітів регістру Rmзгідно з бітовою маскою B.
Алгоритм виконання цієї машинної команди можна зобразити так:
1. Виконати команду логічного „або” над значенням регіструRmта бітовою маскою.
2. Результат логічної операції записати в регістр Rm.
3. Перейти до вибірки наступної команди
2.2 Спрощена мікропрограма та її пояснення
Спрощена мікропрограма виконання команди SBRR1, B:
(Примітка: кожен рядок відповідає одному такту процесора)
1. PC_to_MAR, MRead, WMFC
2. MDRout, IRcopin, PCinc
3. PC_to_MAR, MRead, WMFC
4. MDRout, IRoffin, PCinc, IRcopout_mc, дешифрація
5. IRoffout, Yin
6. R1out , Yout , OR, Zin
7. Z out , R1in , End.
Кроки 1 та 2 складають фазу вибірки команди, однакову для всіх команд, кроки 3 та 4 — вибірка операнда та дешифрація.
1. На кроці 1 відбувається пересилка вмісту регістра PCв регістр MARта ініціюється операція читання з пам'яті. Після отримання від пам’яті сигналу готовності переходимо до 2-го кроку:
2. Пересилка отриманого байту з регістру MDRв регістр IRcop(це перший байт команди – код операції); інкремент адреси, що знаходиться в PC.
3. На 3-му кроці робляться такі ж дії, що і на першому, а саме запит на читання байту з пам’яті за адресою, що в PC.
4. Пересилка отриманого байту з регістру MDRв регістр IRoff(другий байт команди (для команди SBRце бітова маска)); інкремент адреси, що знаходиться в PC; пересилка коду операції з регістру IRcopв блок управління; дешифрація коду операції.
Після вибірки команди і її дешифрації відбувається власне виконання команди (в нашому випадку – SBRR1, B) .
5. Пересилка бітової маски, що знаходиться в регістрі IRoff, до регістру Yдля подальшого його використання в АЛП в якості операнду.
6. Видача на шину вмісту регістру R1, операціялогічного „або” в АЛП, результат помістити в регістр Z.
7. Пересилка значення регістру Zдо регістру R1.
Лістинг програми, розбитий по крокам, з коментарями наведений в додатку3.
Завданням курсової роботи було Розробка структурної схеми процесорного елемента та мікропрограми керування для реалізації команди “SBRRm, B”. Для його виконання було розглянуто декілька літературних джерел, архітектури різних процесорів та мікроЕОМ. Розроблена в результаті курсової роботи архітектура не претендує на звання кращої, чи оптимальної. Вона проектувалась з боку спрощення, кращої наглядності схеми, для кращого її розуміння. Деякими структурними блоками було знехтувано, про що вказувалось по ходу роботи. При розробці схеми основну увагу приділялось правильному виконанню вказаної в завданні команди.