Архітектура МПС. Структура та функціонування МПС

 

1 Архітектура мікропроцесорної системи

2 Структура та функціонування  мікропроцесорної системи

3 Архітектура мікропроцесора  i8085

 

1 Архітектура мікропроцесорної системи

 

Поняття архітектури мікропроцесора визначає його складові частини, а також зв'язки та взаємодію між ними. Архітектура містить: 1) структурну схему самого МП; 2) програмну модель МП (опис функцій регістрів); 3) інформацію про організацію пам'яті (ємність пам'яті та спо­соби її адресації); 4) опис організації процедур введення-виведення.

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

Рисунок 1   Структурна схема з процесором фоннейманівської архітектури

 

Розширену структурну схему МПС з процесором фоннейманівської архітек­тури наведено  на рисунку 1.

Схема процесора містить пристрій керування, АЛП, регістри: адреси, да­них, команд, стану, акумулятор, лічильник команд та вказівник стека.

Пристрій керування відповідно до кодів команд та зовнішніх сигналів керування і сигналів синхронізації виробляє сигнали керування для всіх блоків структурної схеми МП, а також керує обміном інформацією між МП, пам'яттю і ПВВ. Пристрій керування реалізує такі функції:

1. Функція початкового встановлення МП. Зовнішній сигнал початко­вого встановлення процесора RESET формується при ввімкненні джерела живлення МП або при натисканні кнопки RESET. У разі появи цього сиг­налу пристрій керування забезпечує завантаження нульового значення у програмний лічильник, що ініціює вибірку з пам'яті байта команди з нульовою адресою. Наприкінці вибірки вміст лічильника команд збіль­шується на одиницю і вибирається байт команди з наступною адресою. Таким чином виконується вся записана у пам'яті програма.

2. Функція синхронізації. Згідно із зовнішніми сигнала­ми керування і сигналами синхронізації пристрій керування синхронізує робо­ту всіх блоків МП.

3. Функція переривань. Із надходженням сигналу переривання при­стрій керування ініціює роботу підпрограми обробки відповідного переривання. Потреба у реалізації функцій переривань виникає тоді, коли під час виконання основної програми треба перевести МП на розв'язання ін­шої задачі, наприклад, обробки аварійної ситуації або роботи з ПВВ.

4. Функція узгодження швидкодії модулів мікропроцесорної системи. Під час обслуговування пам'яті та ПВВ із значно меншою швидкодією, ніж МП, узгодження швидкодії вирішується генерацією тактів очікуван­ня МП, а під час обслуговування пристроїв з більшою швидкодією, ніж МП, використовується режим безпосереднього доступу до пам'яті.

Арифметико-логічний пристрій являє собою комбінаційну схему на основі суматора, який сигналами з виходів пристрою керування налагод­жується на виконання певної арифметичної або логічної операції: дода­вання, віднімання, І, АБО, НЕ, виключне АБО, зсув, порівняння, десяткова корекція. Отже, АЛП виконує арифметичні або логічні операції над операндами, які пересила­ються з пам'яті і/або регістрів МП. Одержаний після виконання команди в АЛП результат пересилається в регістр або комірку пам'яті.

Регістри призначені для зберігання n-розрядного двійкового числа. Вони являють собою п тригерів зі схемами керування читанням/записом та вибірки. Регістри створюють внутрішню пам'ять МП і використову­ються для зберігання проміжних результатів обчислень.

Акумулятор – це регістр, у якому зберігається один з операндів. Після виконання команди в акумуляторі замість операнда розміщується резуль­тат операції.

Вказівник команду або програмний лічильник, призначений для збері­гання адреси комірки пам'яті, яка містить код наступної команди. Програ­му дій МП записано в пам'яті у вигляді послідовності кодів команд. Для переходу до наступної команди вміст лічильника збільшується на одини­цю у момент вибирання команди з пам'яті. Наприкінці виконання команди в лічильнику команд зберігається адреса наступної команди.

Вказівник стека – це регістр, який зберігає адресу останньої зайнятої ко­мірки стека. Стеком або стековою пам'яттю називається область пам'яті, організованої за принципом «останній прийшов – перший пішов».

Регістр команд зберігає код команди протягом усього часу виконання команди.

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

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

 

 

2 Структура та функціонування  мікропроцесорної системи

 

На рисунку 2 наведена структурна схема мікропроцесорної системи з МП, яка має шину адреси/даних, що мультиплексується. Лінії A15-А8 є адресними, через них у систему передається старший байт 16-розрядної адреси. У цю шину включений формувач (буферний регістр ИР82) з постійно відкритим входом дозволу EN, що забезпечує роботу шини на навантаження. Власної навантажувальної здатності у виводів МП, як правило, недостатньо. Лінії   AD7-0 мультиплексуються. Спочатку вони передають молодший байт адреси, ознакою чого служить наявність сигналу ALE (Address Latch Enable), що завантажує цей байт у регістр ИР82.

Після завантаження регістра сигнал ALE знімається, і вміст регістра залишається незмінним аж до нового завантаження в наступному циклі роботи процесора. Так формується 16-розрядна шина адреси, що містить адресу A15-0. Ця адреса використовується блоками постійної (ROM) й оперативної пам'яті  (RAM). Адресація портів введення і виведення даних вимагає восьми розрядної адреси, що надає можливість працювати  не більш ніж з 256 портами кожного з типів. Адресу портів можна знімати з будь-якої половини адресної шини.

Після передачі молодшого байта адреси шина AD7-0 віддається для передачі даних. Напрямок передачі задається буфером даних BD у залежності від сигналу  Т (Transіt). При активному стані сигналу читання RD (Read) дані передаються до мікропроцесора, при пасивному – у зворотному напрямку. До шини даних підключені інформаційні виводи всіх модулів МПС.

 

Рисунок 2 – Структура мікропроцесорної системи.

 

 3 Архітектура мікропроцесора  i8085

 

Архітектура  мікропроцесора i8085 (К1821ВМ85А) наведена на рисунку 3. Мікропроцесор має восьми розрядну шину даних (внутрішню), через яку його блоки обмінюються інформацією.

На схемі прийняті такі позначення:

-       AC (Accumulator) – регістр-акумулятор, виконаний на двоступінчастих тригерах і здатний зберігати одночасно два слова (один з операндів і результат операції);

-       TR (Temporary Register) – регістр тимчасового зберігання одного з операндів;

-       ALU (Arithmetic-Logic Unit) – арифметико-логічний пристрій, що виконує дії над двома словами - операндами, які подаються на його входи. Акумулятор служить джерелом і приймачем даних, TR - джерелом слова даних, збереженим на час виконання операції. АЛП функціонує відповідно до співвідношення А: = А* В, де В зберігається в TR, другий операнд надходить від акумулятора, у нього ж надходить результат операції. АЛП безпосередньо виконує лише операції додавання, віднімання, зсуву, порівняння слів, порозрядні логічні операції (кон’юнкцію, диз'юнкцію, додавання по модулю 2). Більше складні операції (множення, ділення і ін.) виконуються у підпрограмах. У АЛП є схема переводу двійкових чисел у двійково-десяткові (DA, Decimal Adjust);

-       RF (Register Flags) – регістр прапорців вказує ознаки результатів арифметичних або логічних операцій, виконаних у АЛП.

 

 Рисунок 3 – Архітектура  мікропроцесора К1821ВМ85А

 

Існує п'ять ознак: Z (Zero) - нульовий результат, С (Carry) - перенос, AC (Auxiliary Carry) - допоміжний перенос, S (Sign) - знак, Р (Parity) - парність ваги слова. Ознака допоміжного переносу (переносу між молодшою й старшою тетрадами восьми розрядного слова) потрібна при виконанні операцій у двійково-десятковому коді. Ознаки служать для керування ходом процесу обробки інформації.

Блок регістрів

Із внутрішньою шиною даних через мультиплексор зв'язаний блок регістрів, частина яких спеціалізована, інша частина – регістри загального призначення (РЗП) програмно доступні й можуть бути використана за розсудом  програміста. Регістри позначені через W, Z, В, С, D, E, H, L, SP і PC. Регістри W і Z призначені тільки для тимчасового зберігання даних під час вибірки команди з пам'яті й недоступні для програміста. Регістри В, С, D, Е, Н, L відносяться до регістрів загального призначення Ці восьми розрядні регістри можуть застосовуватися або окремо, або у вигляді пар ВС, DE, HL, що грають роль 16-розрядних регістрів. Пари регістрів мають назви В, D, Н. Пара H, як правило, використається для розміщення в ній адрес при непрямій регістровій адресації. У блоці регістрів є також 16-розрядні регістри SP і PC. Регістр SP (Stack Pointer) – покажчик стека. Порядок уведення слів у стек і їхнього зчитування визначені його пристроєм. При організації типу LIFO (Last In - First Out) останнє записане в стек слово при зчитуванні з'являється першим. Операції зі стеком - PUSH (запис слова) і POP (зчитування слова).

Апаратно стек реалізується у ОЗП, де для нього виділяється певна область. Покажчик стека SP містить адресу останнього зайнятого осередку. При виконанні операцій Push і Pop значення SP зменшується або збільшується.

Програмний лічильник PC (Program Counter) дає адресу команди, і може звертатися в кожний з 64К осередків АП. При скиданні МП PC приймає нульовий стан, що, таким чином, є адресою першої команди, що виконується. Довжина команди становить 1...3 байта. Уміст програмного лічильника після вибірки чергового байта з пам'яті автоматично інкрементується, так що в PC з'являється адреса наступної команди, якщо поточна команда була однобайтовою, або наступного байта поточної команди в противному випадку. Другий і третій байти команди надходять у регістри W і Z, які не адресуються програмою й використаються тільки блоком внутрішнього керування. Схема INC/DEC (Increment/Decrement) змінює передані через неї слова на +1 або -1.

Регістр команд IR (Instruction Register) приймає з пам'яті перший байт команди, що після декодування створює сигнали, необхідні для реалізації машинних циклів, запропонованих кодом операції.

Блок синхронізації й керування використає вихід дешифратора команд і шифратора машинних циклів для синхронізації циклів, генерації сигналів стану й керування шиною (зовнішніми пристроями мікропроцесорної системи).

При обміні між МП і пам'яттю або ЗП адреса відповідної комірки пам'яті або ЗП від обраної команди або однієї з регістрових пар передається у регістр адреси RA.

Буфер адреси ВА із трьома станами виходу видає сигнали старших розрядів адреси на лінії адресної шини А15-8.

Буфер шини адрес/даних BA/D із трьома станами виходу передає на шину A/D з поділом у часі молодший байт адреси або байт даних.

МП, почавши роботу, вибирає з пам'яті й виконує одну команду за іншою, поки не дійде до команди "Зупинка" (HLT). Мікропроцесор К1821 має такі типи машинних циклів:

1.      Вибірка команди (OF, Opcode Fetch).

2.      Читання з пам'яті (MR, Memory Read).

3.      Запис до  пам'яті  (MW, Memory Write).

4.      Читання з ЗП (IOR, Input-Output Read).

5.      Запису у ЗП (IOW, Input-Output Write).

6.      Підтвердження переривання (INA, Interrupt Acknowledge).

7.      Звільнення шин (BI, Bus Idle).

8.      Зупинка (HALT).

На початку кожного машинного циклу генеруються сигнали стану, які ідентифікують тип циклу й діють протягом усього циклу.

Функції виводів і сигналів:

-       A15-8 – вихідні лінії із трьома станами для видачі старшого байта адреси пам'яті або повної адреси ЗП. Переходять у третій стан у режимах HOLD, HALT і RESET;

-       AD7-0 – двохнаправлені мультиплексовані лінії із трьома станами для видачі молодшого байта адреси пам'яті або повної адреси ЗП в першому такті машинного циклу, після чого використовуються як шина даних;

-       ALE – строб дозволу завантаження молодшого байта адреси пам'яті в зовнішній регістр для його зберігання протягом машинного циклу. З'являється у першому такті машинного циклу. Регістр завантажується спадом сигналу ALE;

-       , – строби читання або запису. Низький рівень відповідного сигналу інформує про те, що адресована комірка пам'яті або зовнішній пристрій повинні виконати операцію читання або запису. Виводи переходять у третій стан у режимах HOLD, HALT і RESET;

-       READY – вхідний сигнал, який показує, що пам'ять або ЗП готові до обміну із МП. Якщо готовності пам'яті або ЗП немає, МП входить у стан очікування, що може тривати будь-яке число тактів аж до появи одиничного рівня сигналу READY;

-       S1, S0 – сигнали стану МП, які повідомляються зовнішньому середовищу. Формуються на початку й зберігаються під час усього машинного циклу;

-       IO/М – сигнал вибору пам'яті або зовнішнього пристрою. При високому рівні відбувається звертання до ЗП, при низькому – до пам'яті.

Разом із сигналами S1S0 сигнал IO/М ідентифікує тип машинного циклу. Сигнали стану й керуючі сигнали ,  і для різних машинних циклів мають наступні значення:

         Таблиця 1  Сигнали стану та керування для різних машинних циклів

Тип МЦ

Сигнали стану

Сигнали керування

IO/М

S1

S0

OF

0

1

1

0

1

1

MR

0

1

0

0

1

1

MW

0

0

1

1

0

1

IOR

1

1

0

0

1

1

IOW

1

0

1

1

0

1

INA

1

1

1

1

1

0

BI

Z

X

X

1

1

1

HALT

Z

0

0

Z

Z

1

 

·        X1, X2 – ці виводи призначені для підключення кварцового резонатора або інших кіл, для забезпечення роботи внутрішнього генератора синхроімпульсів МП. Частота на виводах у 2 рази вище робочої частоти;

·        () – вхід сигналу скидання МП у початковий стан. Сигнал може надійти у будь-який час за командою оператора. Автоматично формується з подачею живлення. Під його впливом скидаються регістри PC і IR, тригери дозволу переривання, підтвердження захоплення;

·        CLK – вихід синхроімпульсів для мікропроцесорної системи. Частота цих імпульсів у два рази нижче частоти на виводах X1 і X2.

·        RESET – вихідний сигнал скидання для зовнішніх модулів системи, прив'язаний до тактових імпульсів CLK (відрізняється від сигналу RESIN по фазі);

·        INTR (Interrupt Request) – вхід запиту векторного переривання, що викликає генерацію строба , якщо переривання дозволене програмою. Адреса підпрограми, що викликається цим входом, видається зовнішнім пристроєм. При скиданні прийом сигналу забороняються (переривання заборонені);

·         (Interrupt Acknowledge) – вихід строба підтвердження векторного переривання після завершення поточного командного циклу. Використовується для читання вектора переривання;

·        RST 5,5; RST 6,5; RST 7,5 – входи запитів радіального переривання типу RSTn (n = 5,5; 6,5; 7,5). Пріоритети фіксовані, вищий пріоритет у входу RST 7,5. Пріоритети всієї групи запитів вище пріоритету запиту INTR;

·        TRAP – вхід запиту переривання, що не маскується та має максимальний пріоритет;

·        SID, SOD (Serial Input Data, Serial Output Data) – вхід і вихід послідовної передачі даних;

·        HOLD – сигнал запиту захоплення шин. Формується зовнішнім пристроєм;

·        HLDA – сигнал підтвердження захоплення (Hold Acknowledge). Є відповіддю на сигнал HOLD, який формується наприкінці поточного машинного циклу. Інформує  о відключенні МП від системних шин. При цьому шини й лінії керуючих сигналів , , IO/М , ALE переводяться у третій стан.