Мікропроцесор (МП) – функціонально закінчений пристрій обробки інформації, керований командами програми, які по черзі надходять із запам’ятовуючого пристрою МП-системи.
Конструктивно МП являє собою одну (однокристальний МП) або кілька (багатокристальний МП, багатокристальний секційний МП) великих або надвеликих інтегральних схем. Поява мікропроцесора стала можливою завдяки розвитку інтегральної електроніки, що дозволило перейти від схем малої і середньої міри інтеграції до великих і надвеликих інтегральних схем.
Докладно принципи роботи мікропроцесора на прикладі мікропроцесора КР580ІК80А розглядається в лабораторних роботах №№ 3–8.
Коротко розглянемо склад і призначення блоків мікропроцесора.
Типова структура мікропроцесора наведена на рис. 1. В загальному випадку можна виділити три основні блоки: арифметико-логічний пристрій,блок внутрішніх регістрів і пристрій керування. Для передачі даних між цими блоками використовується внутрішня шина даних. Внутрішня шина даних безпосередньо приєднана до шини даних МП-системи.
Рис. 1. Типова структурна схема мікропроцесора
Перелік функцій арифметико-логічного пристрою (АЛП)залежить від типу МП. Основу АЛП складає двійковий суматор, регістри для тимчасового зберігання операндів – буферні регістри, та логічні схеми для виконання логічних операцій. В більшості мікропроцесорів цей пристрій виконує за керуючими сигналами кілька найпростіших операцій: додавання, віднімання, збільшення на 1 (додатне збільшення – інкрементування і від’ємне – декрементування), зсув даних вліво і вправо, інверсію, логічне додавання (АБО), логічне множення (І), додавання за модулем 2.
Важлива складова частина МП – регістри. Деякі регістри мають спеціальне призначення, інші – багатоцільове. Останні називаються регістрами загального призначення (Ргзп) і можуть використовуватись в програмуванні. АЛП може здійснювати операції над вмістом Ргзп без виходу на зовнішні шини адрес і даних і ці операції здійснюються набагато швидше, ніж операції над даними, що зберігаються в пам’яті. Тому іноді регістри загального призначення називають надоперативною пам’яттю. Кількість Ргзп і можливість програмного доступу до них у різних МП відмінна.
АЛП безпосередньо зв’язаний з регістром ознак, у відповідних розрядах якого фіксуються ознаки результату виконаної операції (Z – ознака нульового результату, S – ознака знаку результату, С – ознака переповнення та ін.). За ознаками здійснюються програмні переходи при реалізації алгоритмів з розгалуженням.
Особливе місце серед регістрів займає регістр-акумулятор (РгА).Більшість арифметичних і логічних операцій здійснюється через використання АЛП і акумулятора. Будь-яка з таких операцій над словами даних (операндами) передбачає розміщення одного з них в РгА, а іншого в пам’яті або в одному з регістрів МП. Результат виконання операції розміщується в РгА, попередній вміст якого втрачається. Інший вид операцій – пересилання даних, наприклад між пристроєм введення-виведення (портом) і пам’яттю, між вічками пам’яті та інші – здійснюється в два етапи: спочатку виконується пересилання даних із вихідного пункту в акумулятор, а потім – із акумулятора в пункт призначення. МП може виконувати деякі дії над даними безпосередньо в акумуляторі. Наприклад, РгА можна очистити записом двійкових нулів в усі його розряди, встановити в одиничний стан записом в усі його розряди двійкових одиниць. Вміст акумулятора можна зсувати вліво або вправо, отримувати його інвертоване значення. Акумулятор є найбільш універсальним регістром МП: для виконання будь-якої операції над даними попередньо їх необхідно помістити в акумулятор. Дані надходять в РгА з внутрішньої шини даних МП. В свою чергуРгА може надсилати дані на цю шину.
Один з найважливіших регістрів МП – це лічильник команд (Ргліч) (абопрограмний лічильник – РС). Програма роботи МП-системи – це послідовність команд, що зберігається в пам’яті. Для коректного її виконання команди програми повинні надходити до МП у визначеному порядку – по черзі. Лічильник команд забезпечує формування адреси чергової команди, що записана в пам’яті.
Перед виконанням програми лічильник команд завантажується адресою першої команди програми. Адреса першої команди з Ргліч надсилається через регістр адреси по адресній шині МП-системи до схем керування пам’яттю, в результаті чого читається вміст вічка пам’яті за вказаною адресою. Зчитана команда надсилається в спеціальний регістр МП, що називається регістром команд. Після видобування команди з пам’яті МП автоматично здійснює збільшення вмісту лічильника команд. Отже з цього моменту лічильник команд містить адресу наступної команди. Після виконання команди цикл, – читання чергової команди з пам’яті і збільшення вмісту Ргліч – повторюється.
Сформований вміст лічильника команд можна змінити, завантаживши лічильник іншим вмістом, за одною з команд особливої групи. Ця група команд здійснює переходи за деякою умовою або безумовно до виконання не наступної команди програми, а до команди, розташованої в іншій частині програми. Завантаження Ргліч адресою команди, до якої здійснюється перехід, дозволяє реалізувати алгоритми з розгалуженням. Як параметр умови переходу використовуються значення певного розряду регістра ознак (наприклад: перехід, якщо результат операції дорівнює нулю; перехід, якщо сталось переповнення та ін.).
Регістр адреси (Ргадр) містить адресу вічка пам’яті і має вихід безпосередньо на шину адрес МП-системи. При кожному звертанні до пам’яті МП-системи Ргадр вказує адресу вічка, вміст якого передбачається використати мікропроцесором, незалежно від того, чи то адреса команди або адреса даного. Оскільки Ргадр приєднаний до внутрішньої шини МП, він може завантажуватись від різних джерел. Під час видобування команди вРгадр копіюється вміст Ргліч. В інших випадках в Ргадрможе бути скопійований вміст одного з регістрів загального призначення або вічка пам’яті. Деякі команди надають можливість змінювати вміст Ргадршляхом виконання обчислень: нове значення вмісту цього регістра отримується через додавання або віднімання вмісту Ргліч з числом, що вказане в самій команді. Такий спосіб утворення адреси називається адресацією з використанням зміщення.
Вказівник стеку (верхівка стеку – SP) – це регістр, який зберігає адресу вічка, зайнятого останнім, в області стекової пам’яті. Під стековою пам’яттю розуміється область оперативної пам’яті, до якої звертання здійснюється за безадресним принципом, тобто здійснюється не за певною адресою, а за принципом: останній записаний елемент видобувається із пам’яті першим. В більшості випадків стекова пам’ять використовується для зберігання і відновлення вмісту програмно-доступних регістрів МП. Детально роботу стекової області пам’яті розглянуто в лабораторній роботі № 8.
Пристрій керування управляє роботою АЛП і внутрішніх регістрів в процесі виконання команди. Згідно з кодом операції, що знаходиться в команді, він формує внутрішні сигнали керування блоками мікропроцесора. Більшість пристроїв керування реалізовані за принципом мікропрограмного керування. Кожна команда, що входить до репертуару команд мікропроцесора, виконується не миттєво, а поступово такт за тактом в суворій послідовності, що визначається кодом команди і синхронізується в часі сигналами тактового генератора. За кожним тактом виконується певні елементарні дії, під час яких регістри МП змінюють свій вміст (наприклад, на початку виконання поточної команди здійснюється передача адреси слова з лічильника команд на шину адреси МП-системи). Тактність підтримується тактовими синхронізуючими імпульсами, які надходять до пристрою керування із зовнішнього генератора імпульсів тактової частоти. Послідовність певних дій, що виконуються за кожним тактом при виконанні певної команди, визначається мікропрограмою виконання команди. Мікропрограма складається з мікрокоманд. Виконання мікрокоманди призводить до утворення певного керуючого сигналу, який надходить до задіяного в цій мікрокоманді блоку МП або до шини керування МП-системи. Мікропрограми зберігаються в постійній пам’яті пристрою керування. Схеми пристрою керування (контролер мікрокоманд) формують за кодом операції команди, що знаходиться в регістрі команд МП, адресу першої мікрокоманди мікропрограми, що інтерпретує дану команду, формують адресу наступних мікрокоманд. Мікропрограми можуть утворювати лінійну послідовність мікрокоманд, безумовні і умовні переходи, звертання до мікропідпрограм. Як умови переходів можуть використовуватись певні стани регістрів МП або наявність (відсутність) сигналів, що надходять із інших пристроїв МП-системи по шині керування. Отже можна сказати, що мікропрограмний пристрій керування уявляє собою деякий процесор в мікропроцесорі, який реалізує певний алгоритм виконання команди.
Використання принципу мікропрограмного керування в багатокристальних секційних мікропроцесорах, в яких пристрій керування уявляє собою окрему ВІС, дозволяє тільки за рахунок гнучкої адаптації набору команд і алгоритмів їх виконання до класу задач, що розв’язуються, значно підвищити швидкодію мікропроцесора. Іноді тільки за рахунок мікропрограмування критичних у часі функцій або алгоритму дозволяє підвищити швидкодію у кілька разів в порівнянні з реалізацією алгоритму на командному рівні. Це використовується, наприклад, при створені спецпроцесорів для обробки сигналів (швидке перетворення Фур’є, цифрова фільтрація), процесорів систем передачі даних та інших застосувань.