Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи радіоелектроніки №2.doc
Скачиваний:
115
Добавлен:
11.11.2018
Размер:
7.73 Mб
Скачать

Структура мікропроцесора

Розглянемо структуру однокристального універсального мікропроцесора, причому для визначеності виберемо восьми розрядний прилад. Як видно із наведеної на рис. 62 структурної схеми, в склад мікропроцесора входять арифметично-логічний пристрій, керуючий пристрій і блок внутрішніх регістрів. Коротко охарактеризуємо ці вузли:

Арифметично-логічний пристрій (АЛП), що служить ядром мікропроцесора, як правило, складається з двійкового суматора із схемами прискореного переносу, регістра зсуву й регістра для тимчасового зберігання операндів. Як правило цей пристрій виконує за командами декількох найпростіших операцій: додавання, віднімання, зсув, пересилку, логічне додавання (АБО), логічне множення (І), додавання за модулем 2.

Рис. 62. Структурна схема мікропроцесора

Як відомо, регістром називається електронна схема для тимчасового зберігання двійкової інформації (машинного слова). Його будують на тригерах, загальне число яких визначає розрядність регістра. Кожен тригер регістру використовується для вводу, збереження й виводу одного розряду – “1” або “0” двійкового числа. Розрядність регістра вибираєть відповідно довжині збереженого в ньому слова.

Регістри, які служать тільки для вводу, зберігання і виводу війкової інформації, називають накопичуваними. Від них відрізняються регістри зсуву, які окрім виконання вказаних функцій дозволяють здійснювати зсув двійкового числа вправо або вліво ( а інколи – в обох напрямках). Якщо в накопичуваний регістр вводять числа в паралельному коді, тобто одночасно у всі регістри, то введення чисел в регістр зсуву часто робиться в послідовному коді, подаючи послідовно один розряд за другим, хоча можливе введення числа в паралельному коді.

Операндом називають число або символ, що беруть участь в машинній операції. Так, у виразі або операнди – це 1, a, b, 2, n. Типовим прикладом операнда використовуваного при процедурі обробки даних мікропроцесором служить байт.

Пристрій керування (ПК) “керує” роботою АЛП і внутрішніх регістрів в процесі виконання команди. Відповідно до коду операцій, що міститься в команді, воно формує внутрішні сигнали керування блоками мікропроцесора. Адресна частина команди спільно з сигналами керування використовується для зчитування даних із відповідної комірки пам’яті (записи даних в комірку). За сигналами ПК здійснюється вибірка кожної нової, наступної команди.

Блок внутрішніх регістрів (БВР), розширюючий можливості АЛП, служить внутрішньою пам’яттю мікропроцесора – використовується для тимчасового зберігання даних і команд. Він також виконує деякі процедури обробки інформації. Як правило блок містить регістри загального призначення й спеціальні регістри: регістр-акумулятор, буферний регістр адреси, бурний регістр даних, лічильник команд, регістр команд, регістр стека, регістр ознак. Коротко охарактеризуємо функції всіх регістрів.

Регістри загального призначення (РЗП), число яких може змінюватись від 4 до 64, в значній мірі визначають обчислювальні можливості мікропроцесора. Їх основна функція – зберігання операндів, тобто підлягаючих обробці даних. Але вони можуть виконувати й роль спеціальних регістрів. Всі РЗП доступні програмісту, який їх розглядає як найоперативніший запам’ятовуючий пристрій. Інколи в технічній документації до мікропроцесора містяться рекомендації з використання РЗП.

Регістр-акумулятор, як правило називається акумулятором (зустрічається також назва накопичувач), призначений для тимчасового зберігання операнда або проміжного результату арифметичних і логічних операцій, вироблених АЛУ. При виконанні будь-якої операції з двома операндами в цьому регістрі міститься один із використовуваних операндів, а після виконання операції – її результат. Розрядність регістра рівна розрядності інформаційного слова. Часто введення й виведення даних в мікропроцесорі відбувається через акумулятор. Зустрічаються мікропроцесори з двома й більше акумуляторами, що дозволяє підвищити гнучкість роботи і ефективність розв’язування завдань.

Буферний регістр адреси - спеціальний регістр, який служить для прийому й зберігання адресної частини виконуючої команди. Інакше кажучи, в ньому міститься до видачі на адресну шину адреса слова, яке зберігається в комірці зовнішньої пам’яті або іншому регістрі. Так, в 16 – розрядному регістрі можна, змінювати нулі й одиниці окремих розрядів двохбайтного слова, помістити (зрозуміло не одночасно) 216 =65536 адрес комірок (слів) пам’яті.

Буферний регістр даних служить для тимчасового зберігання вибраного із пам’яті слова перед видачею його на зовнішню шину даних. Розрядність такого регістра визначається кількістю байтів інформаційного слова (для зберігання однобайтного слова необхідний двох розрядний регістр, двохбайтного слова – 16- розрядний).

Лічильник команд – лічильник, що містить адрес комірки пам’яті, в якій розміщені байти виконаної команди. Як правило команди певної програми знаходиться в послідовному розміщені комірок пам’яті: для однобайтової команди число, вказуючи адрес кожної наступної комірки, на одиницю більше числа, що відзначає адрес даної комірки. Тому перехід до наступної команди досягається збільшенням числа, що міститься в лічильнику команд, на одиницю (для повернення до попередньої команди вміст лічильника повинен зменшитись на одиницю). В ході виконання поточної команди, тобто при передачі команди із пам’яті в мікропроцесор, вміст лічильника команд збільшується на одиницю й утворюється адрес наступної команди. Ось чому говорять, що лічильник команд призначений для зберігання адресу команди, наступний в програмі по порядку за виконуваною командою. Можлива ситуація, коли потрібно після даної команди використовувати команду, що зберігається не в сусідній, а в іншій, скажімо віддаленої, комірки пам’яті. Тоді за сигналом ПК в лічильник команд заноситься адрес віддаленої комірки.

Регістр команд приймає й зберігає код наступної команди, адреса якої знаходиться в лічильнику команд. За сигналом ПК в нього передається із регістра збережена там інформація.

Регістри стеку діляться на стек і вказівник стеку. Назва “стек” походить від англійського слова staсk, що в дослівному перекладі означає “штабель”(дров), кіпа (паперу). В мікропроцесорах стек являє собою набір регістрів, що зберігають адреси (команди повернення – при звернені до підпрограм) або запам’ятовуючих стан внутрішніх регістрів. Цей набір організований таким чином, що слово адреси або даних вибирається по принципу: “ ввійшовши останнім – виходиш першим” – подібно тому, як із штабеля дров першим беруть поліно, яке поклали останнім (в англійській мові цей принцип визначається виразом LastinFirst Out і абревіатура LIFO інколи зустрічається як назва стекової пам’яті). При запису в стек наступного слова всі що знаходяться в ньому слова зміщаються на один регістр вниз (процес такого запису називається “проштовхуванням”). Після вибірці слова із стека слова, які залишилмся зміщується на один регістр вверх (процес зчитування називається “виштовхування” вверх). Стек може бути виконаний не тільки на внутрішніх регістрах мікропроцесора, складаючи його частину, але і знаходитись у зовнішньому оперативному ЗП, займаючи там виділену для нього зону. В останньому випадку стек отримується більш глибоким, ємним, однак для звернення до його необхідний вказівник стека – спеціальний регістр.

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

Регістр ознак є набором тригерів, що називаються прапорцями. В залежності від результатів операцій, виконуваних АЛП, кожен тригер встановлюється в стан “0” або “1”. Прапорцеві біти, що визначають вміст регістра, індикують умовні ознаки: нульового результату, знака результату, переповнення і т.д. Ця інформація, що характеризує стан процесора, важлива для вибору подальшого типу обрахунків.

Розглянемо тепер питання про зв’язок між основними частинами мікропроцесора. Як видно з рис. 62 для структури мікропроцесора характерна наявність внутрішньої шини даних, що з’єднує між собою його компоненти. Шиною називають групу ліній передачі інформації, об’єднану за загальними функціональними ознаками. В мікропроцесорній системі використовується три види шин: даних, адреси, і керування.

Розрядність внутрішньої шини даних, тобто кількість переданих по ній одночасно (паралельно) бітів числа, відповідає розрядності слів, якими оперує мікропроцесор. Очевидно, що розрядність внутрішньої шини (і зовнішньої) шин даних повинна бути однією і тією ж. У 8- розрядного мікропроцесора внутрішня шина складається із восьми ліній, по яких можна передавати послідовно 8-розрядні слова – байти. Необхідно мати на увазі, що по шині даних передається не тільки оброблені АЛП слова, але й командна інформація. Отже, недостатньо висока розрядність шини даних може обмежити склад (складність) команд та їх число. Тому розрядність шини даних відносять до важливих характеристик мікропроцесора - вона в основному визначає його структуру.

Шина даних працює в режимі двонаправленої передачі. Це

означає, що по ній можна передавати слова в обох напрямках, але, зрозуміло, не одночасно: необхідне використання спеціальних буферних схем і мультиплексного режиму обміну даними між мікропроцесором і зовнішньою пам’яттю. Мультиплексорний режим (від англ. multiple – багатократний, множинний), інколи називають багатоточковим режимом, - режим одночасного використання каналу передачі великим числом абонентів з розділенням в часі засобів керування обміну.

Обробка даних

Розглянемо процедуру обробки даних, що зберігаються у внутрішній пам’яті мікропроцесора. Для цього необхідна більш докладна структурна схема, яка зображена на рис. 62. На її основі у відповідності з викладеним призначенням вузлів структурної схеми, з складом блоку внутрішніх регістрів і виконуваних ними функцій, а також характеристикою ланцюгів взаємодії вузлів побудована детальна структурна схема – рис. 63. Хоча дана схема спрощена, вона достатньо добре відображає організацію 8-розрядного одно- кристального мікропроцесора (наприклад, таку структуру має мікропроцесор КР580ИК80А).

Щоб полегшити сприйняття міркувань, надамо їм конкретний характер. Будемо вважати, що задача обробки даних полягає в додаванні двох операторів, кожен з яких являє собою 8-розрядне двійкове число, тобто байт.

Всі арифметичні і логічні операції здійснює 8-розрядний АЛП, розміщений у верхній правій частині рис. 63 (числа розрядів АЛП і всіх регістрів вказані в дужках поряд з назвами блоків). На перший вхід АЛП подається байт із 8-розрядного проміжного регістра (в деяких книжках цей регістр називають ТЕМ регістром – від англ. слова temporary storage – тимчасова пам’ять). Результат додавання вказаних двох байтів передаються з виходу АЛП через внутрішню шину даних в акумулятор. Це одноадресна організація мікропроцесора мікро-ЕОМ. Для її характерно те, що один із операндів, що приймає участь в обробці, завжди знаходиться в акумуляторі, адреса якого відома. Тому при виконанні операцій додавання двох операндів необхідно вказати тільки одну із адрес – другого операнда, що міститься, наприклад, в одному із регістрів загального призначення (РЗП). До АЛП приєднані регістр ознак, призначений для зберігання та аналізу ознак результату операції, і схема десяткової корекції (вона не

Рис. 63. Структурна схема 8-розрядного однокристального мікропроцесора

подана на рис. 63), що дозволяє проводити обробку даних в двійково-десятковому коді.

В правій нижній частині рис. 63 зображені вісім РЗП, а також вказівник стеку, лічильник команд та буферний регістр адреси (стековий регістр на рисунку відсутній, тобто стек являє собою визначену зону зовнішньої пам’яті – ОЗП). Перші два РЗП – регістри W і Z – призначені для короткочасного зберігання даних під час виконання команди (ці регістри недоступні програмісту), інші шість РЗП – регістри B, C, D, E, H, L – служать комірками внутрішньої пам’яті, що часто називають найоперативним запам’ятовуючим пристроєм (НОЗП). В них зберігаються операнди, що підлягають обробці в АЛП, результати обробки даних, виконаних АЛП, і керуючі слова. В кожному регістрі поміщається один байт. Звернення до РЗП- адресне. Попарне розміщення регістрів В і С, D і E, H і L дає можливість проводити обробку двохбайтових слів, названою обробкою “подвоєної точності”. Обмін даними РЗП (зчитування та запис інформації) здійснюється через мультиплексор, при чому необхідний регістр вибирається з допомогою селектора регістрів за сигналом ПК .

В лівій частині рис. 63 розміщені регістри команд, дешифратор коду операцій і ПК (хоча дешифратор відноситься до ПК, він намальований окремо для більшої наочності).

Обмін інформацією між регістрами та іншими блоками мікропроцесора здійснюється через внутрішню шину даних, причому передача команд і передача даних розділені в часі. Зв’язок з зовнішньою шиною даних здійснюється через буферний регістр даних, показаний в нижній частині рис. 63.

Мікропроцесор - це програмно-керуючий пристрій. Процедура виконаної ним обробки даних визначається програмою, тобто сукупністю команд, кожна з яких являє собою відповідну комбінацію електричних сигналів, що відповідають “ 0” і “1”. Команда ділиться на дві частини: код операції і адреса. В коді операції закладена інформація про те, яка операція повинна над даними, що підлягають обробці. Адреса вказує місце, що підлягає обробці, представляє один байт. Команда може складатися із одного, двох або трьох байтів, послідовно розміщених в пам’яті.

Перший байт команди містить код операції. Зчитаний на початку інтервалу виконання команди, так званий цикл команди, її перший байт надходить із пам’яті по внутрішній шині даних в регістр команд, де зберігається на протязі всього циклу. Дешифратор коду операції дешифрує уміст регістра команд – визначає характер операції і адреси операндів. Ця інформація передається в ПК, який виробляє керуючі сигнали, напрямків в блоки мікропроцесора, що приймають участь у виконанні даної команди.

Можливий випадок, коли код операції безпосередньо вказує адрес даних – об’єкта обробки. Тоді вона розпочинається зразу після зчитування першого байта команди. Якщо ж в команді міститься більше одного байта, то інші байти, несучі інформацію про адрес комірки пам’яті, де зберігаються дані, передаються або в буферний регістр адреси, або в один із РЗП. Тільки після завершення всієї процедури зчитування команди або іншими словами, отримання повної інформації про місце знаходження операндів і про те, яка операція повинна виконуватись над ними, розпочинається обробка.

В розглянутому прикладі виконуюча операція – додавання двох операндів. Перший операнд зберігається в акумуляторі, другий – в одному із РЗП (його адреса вказана в команді), звідки він передається у проміжний регістр. Відповідно коду операції АЛП виконує команду: сумує байти, які надходять на його вхід. Отримана сума фіксується в акумуляторі. Це результат, може бути використаний при подальших етапах обробки (більш складних, ніж додавання двох байтів) записаний у зовнішню пам’ять або переданий в пристрій виводу.

***