48894 (572248), страница 2
Текст из файла (страница 2)
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 Загальний алгоритм виконання процесором команди SBR Rm, B
Для виконання програми процесор вибирає команди з пам'яті по одній і виконує обумовлені ними дії. Команди вибираються з послідовних адрес пам'яті доти, доки не зустрінеться команда переходу або розгалуження. Для цього в лічильнику команд (PC) відслідковується адреса чергової команди, що підлягає виконанню. Після вибору цієї команди вміст регістра PC змінюється так, щоб він вказував на наступну команду в пам'яті в порядку розташування адрес. Команда розгалуження може завантажити в PC іншу адресу.
Загальний алгоритм роботи процесора можна зобразити наступним чином:
-
Вибірка машинної команди
-
Збільшення лічильника команд на довжину команди
-
Дешифрація команди
-
Вибірка операнду (якщо потрібно)
-
Виконання команди
Команда “SBR Rm, B” — установка бітів регістру Rm згідно з бітовою маскою B.
Алгоритм виконання цієї машинної команди можна зобразити так:
-
Виконати команду логічного „або” над значенням регістру Rm та бітовою маскою.
-
Результат логічної операції записати в регістр Rm.
-
Перейти до вибірки наступної команди
2.2 Спрощена мікропрограма та її пояснення
Спрощена мікропрограма виконання команди SBR R1, B:
(Примітка: кожен рядок відповідає одному такту процесора)
-
PC_to_MAR, MRead, WMFC
-
MDRout , IRcopin , PCinc
-
PC_to_MAR, MRead, WMFC
-
MDRout , IRoffin , PCinc , IRcopout_mc , дешифрація
-
IRoffout , Yin
-
R1out , Yout , OR, Zin
-
Z out , R1in , End.
Кроки 1 та 2 складають фазу вибірки команди, однакову для всіх команд, кроки 3 та 4 — вибірка операнда та дешифрація.
-
На кроці 1 відбувається пересилка вмісту регістра PC в регістр MAR та ініціюється операція читання з пам'яті. Після отримання від пам’яті сигналу готовності переходимо до 2-го кроку:
-
Пересилка отриманого байту з регістру MDR в регістр IRcop (це перший байт команди – код операції); інкремент адреси, що знаходиться в PC.
-
На 3-му кроці робляться такі ж дії, що і на першому, а саме запит на читання байту з пам’яті за адресою, що в PC.
-
Пересилка отриманого байту з регістру MDR в регістр IRoff (другий байт команди (для команди SBR це бітова маска)); інкремент адреси, що знаходиться в PC; пересилка коду операції з регістру IRcop в блок управління; дешифрація коду операції.
Після вибірки команди і її дешифрації відбувається власне виконання команди (в нашому випадку – SBR R1, B ) .
-
Пересилка бітової маски, що знаходиться в регістрі IRoff, до регістру Y для подальшого його використання в АЛП в якості операнду.
-
Видача на шину вмісту регістру R1, операція логічного „або” в АЛП, результат помістити в регістр Z.
-
Пересилка значення регістру Z до регістру R1.
Лістинг програми, розбитий по крокам, з коментарями наведений в додатку 3.
ВИСНОВОК
Завданням курсової роботи було Розробка структурної схеми процесорного елемента та мікропрограми керування для реалізації команди “SBR Rm, B”. Для його виконання було розглянуто декілька літературних джерел, архітектури різних процесорів та мікроЕОМ. Розроблена в результаті курсової роботи архітектура не претендує на звання кращої, чи оптимальної. Вона проектувалась з боку спрощення, кращої наглядності схеми, для кращого її розуміння. Деякими структурними блоками було знехтувано, про що вказувалось по ходу роботи. При розробці схеми основну увагу приділялось правильному виконанню вказаної в завданні команди.
Розроблена мікропрограма для керування виконанням команди “SBR Rm, B” написана на машинній мові з використанням команд мікроконтроллера сімейства MCS-51. Створена мікропрограма виконується за 7 тактів процесора, з них 4 такти — це вибірка команди (коду операції та операнду), а 3 інших — безпосереднє виконання команди. Це дуже проста команда, що не потребує запитів до пам’яті, тому на її виконання треба всього 3 такти.
В результаті виконання роботи я поглибив свої знання про будову, принципи роботи процесорів та мікропроцесорних систем різних архітектур.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
-
Будіщев М.С. Електротехніка, електроніка та мікропроцесорна техніка. – видавництво «Афіша», 2001.–421с.
-
А. Буняк. Електроніка та мікросхемотехніка. – СМП «Астон», 2001.
-
Н. Ершова, О. Ивашенков, С. Курсков, Микропроцессоры, Пособие к курсам "Микропроцессорные средства" и "Автоматизированные системы для научных исследований" — http://dfe3300.karelia.ru/koi/posob/pos.html
-
Система команд AVR-контроллеров — http://ntlib.chat.ru/avr/instr.htm
-
Документація на мікроконтроллери фірми Intel MCS-51/151/251. (каталог pdf файлів) — http://www.intel.com/design/mcs51/docs_mcs51.htm
ДОДАТКИ
Додаток 1
Рис 2. Структурна схема процесорного елемента
Додаток 2
Розшифровка позначень на схемі
Таблиця 1
| Символьне позначення | Опис |
| R0, R1, R2, R3 | Регістри загального призначення, використовуються програмістами для потреб програм. |
| Z | Регістр, призначені для тимчасового збереження результату виконання певної операції арифметико-логічним пристроєм. |
| Y | Регістр для тимчасового збереження операнду, який потрібно обробити в АЛП. |
| IR | (Instruction register) Регістр, в якому зберігається код машинної команди. |
| ALU | (Arithmetical-logical unit) Арифметико-логічний пристрій, АЛП |
| PC | (Program counter) Лічильник команд |
| MAR | (Memory address register) Регістр адрес пам’яті |
| MDR | (Memory data register) Регістр даних пам’яті |
| PSW | (Program status word) Регістр стану |
Додаток 3
Лістинг мікропрограми
consts.inc
R0_in EQU p1.0
R0_out EQU p1.1
R1_in EQU p1.2
R1_out EQU p1.3
R2_in EQU p1.4
R2_out EQU p1.5
R3_in EQU p1.6
R3_out EQU p1.7
PC_in EQU p3.0
PC_out EQU p3.1
PC_to_MAR EQU p3.2
MFC EQU p3.3
MAR_in EQU p3.4
MRead EQU p3.5
MDR_in EQU p3.6
MDR_out EQU p3.7
IRcop_in EQU p0.0












