Тактові імпульси

Тривалість такту задається тактовими імпульсами, що їх виробляє генератор тактових імпульсів ГТІ, і визначає темп роботи всієї мікропроцесорної системи. У МП-80 тактові імпульси передаються

по лініях F1 і F2 і є прямокутними (точні­ше, трапецеїдальни­ми) імпульсами, зсуну­тими один відносно одного на певний проміжок часу. Осци­лограму тактових ім­пульсів зображено на рис. 4.1. На ній указано мінімальну тривапість відповідних проміжків часу.

Мінімальна трива­лість періоду тактових імпульсів складає 400 не. Імпульс F1 має

мінімальну тривалість 100 не. У момент його закінчення починається імпульс F2, який триває не менше 200 не. З тактових імпульсів (що мають величину близько 12 В) КП формує керуючі імпульси, які розсилаються до всіх блоків мікропроцесора. Сукупність керуючих імпульсів складає макрокоманду. За один такт виконується одна мікрокоманда, отже, протягом одного такту вся мікропроцесорна система зберігає незмінний стан і змінює його лише від наступної мікрокоманди. Мінімальна тривалість періоду тактових імпульсів визначається тривалістю перехідних процесів логічних елементів, що складають мікропроцесор і для МП-80 не може бути меншою від 400 не.

Процедура введення даних у мікропроцесор (операція читання з пам 'яті)

Розглянемо як приклад часову діаграму процедури введення даних до мікропроцесора (рис. 4.2). Вона полягає в тому, що з деякої комірки пам'яті, адресу якої задано в команді, дані переписуються в акумулятор. Конкретно такою командою є команда LDA ADR [ЗА]. Командний цикл її складається з чотирьох машинних циклів:

- вибірки з пам'яті першого байта команди (коду команди);

- двох циклів вибірки адреси комірки пам'яті, яка містить дані; -вибірки з указаної комірки даних та запис їх до акумулятора.

Кожний машинний цикл складається з кількох тактів, які позначаються як Ть Т2, Tj тощо. Машинні цикли можуть містити від трьох до п'яти тактів. Перші три такти в усіх машинних циклах використовуються для організації обміну з пам'яттю або із зовнішнім пристроєм, такти Т4 та ts (якщо вони є в машинному циклі) - дл виконання внутрішніх операцій у мікропроцесорі. Відлік тактів здійснюється від переднього фронту імпульсів F1.

Отже, першим машинним циклом є вибірка першого байта команди - коду команди. У такті ТІ протягом імпульсу F2 адреса команди, яка міститься в лічильнику команд (туди вона була записана заздалегідь), вистав пяється на ША. Одночасно видається синхронізуючий імпульс SYNC, який указує на початок чергового машинного циклу. Імпульс SYNC триває один такт. Він потрібний для синхронізації роботи мікропроцесора з пам'яттю або зовнішніми пристроями.

Одночасно мікропроцесор виставляє на ПІД слово стану -8-розрядне слово, котрим МП наче "об'являє" про свої наміри - що він буде робити в даному машинному циклі: читати або видавати дані, зв'язуватися з пам'яттю або із зовнішніми пристроями, записувати в стек або обслуговувати переривання. Це потрібно для того, щоб ті пристрої, з якими процесор "виходить на зв'язок", приготувалися до роботи з ним.

Кожний різновид машинного циклу має свій код слів стану. Зі слів стану буде вироблено керуючий сигнал, який приведе в дію відповідні блоки пам'яті або зовнішніх пристроїв. Так, наприклад, якщо в даному машинному циклі передбачається звернення до пам'яті, то на підставі слова стану формується керуючий сигнал, який активізує мікросхеми пам'яті. Слово стану утримується на ПІД протягом одного такту. У нашому випадку слово стану повідомляє про те, що в даному машинному циклі буде відбуватися вибірка першого байту команди. У такому слові стану відмінними від нуля будуть біти D7, D5 та D1, тобто код слова стану є А2.

Наприкінці такту ТІ пам'ять має підтвердити свою готовність до роботи сигналом READY=1. Стан сигналу READY аналізується мікропроцесором протягом такту Т2 і якщо все гаразд, то МП продовжує свою роботу. Наприкінці Т2 пам'ять уже готова видати дані (у нашому випадку - код команди). Мікропроцесор видає підтвердження своєї готовності сприймати ці дані сигналом DBIN=1. Дані з пам'яті виставляються на ПІД і сприймаються буферним регістром команди, після чого вони можуть бути зняті з ШД. Далі код команди аналізується КП, який встановлює, чи будуть у команді ще другий і третій байти (у даному разі в команді LDA вони є). Такий аналіз відбувається протягом такту Т4. На цьому перший машинний цикл закінчується і МП приступає до другого машинного циклу - вибірки з пам'яті першого (молодшого) байта адреси тієї комірки пам'яті, яка містить потрібні дані.

Послідовність мікрооперацій у тактах другого машинного циклу подібна до першого. Спочатку на ША виставляється адреса другого байта команди (вона на одиницю більша за попередню), імпульс SYNC та слово стану. Після перевірки готовності в Т2 у третьому такті Т3 за сигналом DBIN відбувається читання молодшого байта адреси, який спрямовується в молодший байт регістра ША. Аналогічно відбувається читання третього байта команди (старшого байта адреси). Ці машинні цикли відрізняються від першого лише відсутністю такту Т4. У результаті другого та третього машинних циклів у регістрі ША формується повна адреса комірки пам'яті, яка містить бажані дані.

Далі, у останньому - четвертому - машинному циклі за адресою, яку створено в регістрі ША, викликаються дані, які й розташовуються в акумуляторі. Наприкінці розглянутого машинного

циклу в лічильнику команд установлюється ад|>< тій

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

Аналогічно відбувається також процедура запису даних у пам'ять (командою STA ADR). Тільки тут в останньому машинному циклі, коли відбувається власне запис даних, замість сигналу DBIN установлюється сигнал WR ~ 0 (раніше WR знаходився в неактивному стані та дорівнював одиниці) і дані на ПІД виставляє не пам'ять, а мікропроцесор. Зрозуміло, що на початку цього машинного циклу мікропроцесор повідомляє про це відповідним кодом слова стану.

Наприкінці слід скачати кілька слів про деякі особливі випадки, що можуть мати місце. Якщо протягом Т2 пам'ять або зовнішній пристрій не підтвердять своєї готовності сигналом READY = 1, То мікропроцесор зупиняє свою роботу, переходить у режим очікування, видаючи сигнал WAIT = 1, і знаходиться у такому стані аж доки не надійде сигнал готовності.

Наприкінці кожного командного циклу МП перевіряє, чи не з'явився сигнал INT (запит на переривання) або HOLD (запит на захоплення шин). Якщо такі сигнали з'явилися, МП припиняє свою роботу у фоновій програмі й переходить у режим обслуговування переривання або в режим захоплення шин.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: