загрузка...
загрузка...
На головну

арифметичні команди

  1. арифметичні вирази
  2. Арифметичні вирази і операції
  3. Арифметичні та тригонометричні функції
  4. арифметичні оператори
  5. арифметичні схеми
  6. ГРУПИ - «КОМАНДИ» ЛІДЕРА

Арифметичні команди розглядають коди операндів як числові виконавчі або двійковій-десяткові коди. Ці команди можуть бути розділені на п'ять основних груп:

  • команди операцій з фіксованою комою (додавання, віднімання, множення, ділення);
  • команди операцій з плаваючою комою (додавання, віднімання, множення, ділення);
  • команди очищення;
  • команди инкремента і декремента;
  • команда порівняння.

Команди операцій з фіксованою комою працюють з кодами в регістрах процесора або в пам'яті як зі звичайними двійковими кодами. Команда складання (ADD) обчислює суму двох кодів. Команда віднімання (SUB) обчислює різницю двох кодів. Команда множення (MUL) обчислює добуток двох кодів (розрядність результату вдвічі більше розрядності співмножників). Команда ділення (DIV) обчислює частка від ділення одного коду на інший. Причому всі ці команди можуть працювати як з числами зі знаком, так і з числами без знака.

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

Команди очищення (CLR) призначені для запису нульового коду в регістр або елемент пам'яті. Ці команди можуть бути замінені командами пересилання нульового коду, але спеціальні команди очищення зазвичай виконуються швидше, ніж команди пересилання. Команди очищення іноді відносять до групи логічних команд, але суть їх від цього не змінюється.

Команди инкремента (збільшення на одиницю, INC) і декремента (зменшення на одиницю, DEC) також бувають дуже зручні. Їх можна в принципі замінити командами підсумовування з одиницею або віднімання одиниці, але інкремент і декремент виконуються швидше, ніж підсумовування і віднімання. Ці команди вимагають одного вхідного операнда, який одночасно є і вихідним операндом.

Нарешті, команда порівняння (позначається CMP) призначена для порівняння двох вхідних операндів. По суті, вона обчислює різницю цих двох операндів, але вихідного операнда не формує, а всього лише змінює біти в регістрі стану процесора (PSW) за результатом цього вирахування. Наступна за командою порівняння команда (зазвичай це команда переходу) буде аналізувати біти в регістрі стану процесора і виконувати дії в залежності від їх значень (серед команд вищої переходу йдеться в розділі 3.3.4). У деяких процесорах передбачені команди цепочечного порівняння двох послідовностей операндов, що в пам'яті (наприклад, в процесорі 8086 і сумісних з ним).

 3.3.3. Логічні командиЛогіческіе команди виконують над операндами логічні (побітові) операції, тобто вони розглядають коди операндів не як єдине число, а як набір окремих бітів. Цим вони відрізняються від арифметичних команд. Логічні команди виконують такі основні операції:
  • логічне І, логічне АБО, додавання по модулю 2 (виключає Або);
  • логічні, арифметичні та циклічні зрушення;
  • перевірка бітів і операндів;
  • установка і очищення бітів (прапорів) регістра стану процесора (PSW).
 Команди логічних операцій дозволяють побитно обчислювати основні логічні функції від двох вхідних операндів. Крім того, операція І (AND) використовується для примусового очищення заданих бітів (в якості одного з операндів при цьому використовується код маски, в якому розряди, що вимагають очищення, встановлені в нуль). Операція АБО (OR) застосовується для примусової установки заданих бітів (в якості одного з операндів при цьому використовується код маски, в якому розряди, що вимагають установки в одиницю, дорівнюють одиниці). Операція «Що виключає Або» (XOR) використовується для інверсії заданих бітів (в якості одного з операндів при цьому застосовується код маски, в якому біти, що підлягають інверсії, встановлені в одиницю). Команди вимагають двох вхідних операндів і формують один вихідний операнд.Команди зрушень дозволяють побитно зрушувати код операнда вправо (в сторону молодших розрядів) або вліво (в сторону старших розрядів). Тип зсуву (логічний, арифметичний або циклічний) визначає, яким буде нове значення старшого біта (при зсуві вправо) або молодшого біта (при зсуві вліво), а також визначає, чи буде десь збережено колишнє значення старшого біта (при зсуві вліво) або молодшого біта (при зсуві вправо). Наприклад, при логічному зсуві вправо в старшому розряді коду операнда встановлюється нуль, а молодший розряд записується як прапора перенесення в регістр стану процесора. А при арифметичному зсуві вправо значення старшого розряду зберігається колишнім (нулем або одиницею), молодший розряд також записується в якості прапора переноса.Цікліческіе зрушення дозволяють зрушувати біти коду операнда по колу (за годинниковою стрілкою при зсуві вправо або проти годинникової стрілки при зсуві вліво). При цьому в кільце зсуву може входити чи не входити прапор переносу. У біт прапора перенесення (якщо він використовується) записується значення старшого біта при циклічному зсуві вліво і молодшого біта при циклічному зсуві вправо. Відповідно, значення біта прапора перенесення буде переписуватися в молодший розряд при циклічному зсуві вліво і в старший розряд при циклічному зсуві вправо.Для прикладу на рис. 3.12 показані дії, що виконуються командами зрушень вправо.Команди перевірки бітів і операндів призначені для установки або очищення бітів регістра стану процесора в залежності від значення обраних бітів або всього операнда в цілому. Вихідного операнда команди не формують. Команда перевірки операнда (TST) перевіряє весь код операнда в цілому на рівність нулю і на знак (на значення старшого біта), вона вимагає тільки одного вхідного операнда. Команда перевірки біта (BIT) перевіряє тільки окремі біти, для вибору яких в якості другого операнда використовується код маски. У коді маски перевіряється битам основного операнда повинні відповідати одиничні розряди. Мал. 3.12. Команди зрушень вправо.Наконец, команди установки і очищення бітів регістра стану процесора (тобто прапорів) дозволяють встановити або очистити будь прапор, що буває дуже зручно. Кожному прапору зазвичай відповідають дві команди, одна з яких встановлює його в одиницю, а інша скидає в нуль. Наприклад, прапору переносу C (від Carry) будуть відповідати команди CLC (очищення) і SEC або STC (установка) .3.3.4. Команди переходовКоманди переходів призначені для організації всіляких циклів, розгалужень, викликів підпрограм і т.д., тобто вони порушують послідовний хід виконання програми. Ці команди записують в регістр-лічильник команд нове значення і тим самим викликають перехід процесора не до наступної по порядку команді, а до будь-якої іншої команди в пам'яті програм. Деякі команди переходів передбачають надалі повернення назад, в точку, з якої був зроблений перехід, інші не передбачають цього. Якщо повернення передбачено, то поточні параметри процесора зберігаються в стеку. Якщо повернення не передбачене, то поточні параметри процесора не сохраняются.Команди переходів без повернення діляться на дві групи:
  • команди безумовних переходів;
  • команди умовних переходів.
 У позначеннях цих команд використовуються слова Branch (розгалуження) і Jump (стрибок) .Команди безумовних переходів викликають перехід в нову адресу незалежно ні від чого. Вони можуть викликати перехід на зазначену величину зсуву (вперед або назад) або ж на вказану адресу пам'яті. Величина зміщення або нове значення адреси вказуються в якості вхідного операнда.Команди умовних переходів викликають перехід не завжди, а тільки при виконанні заданих умов. В якості таких умов зазвичай виступають значення прапорів в регістрі стану процесора (PSW). Тобто умовою переходу є результат попередньої операції, яка змінює значення прапорів. Всього таких умов переходу може бути від 4 до 16. Кілька прикладів команд умовних переходів:
  • перехід, якщо дорівнює нулю;
  • перехід, якщо не дорівнює нулю;
  • перехід, якщо є переповнення;
  • перехід, якщо немає переповнення;
  • перехід, якщо більше нуля;
  • перехід, якщо менше або дорівнює нулю.
 Якщо умова переходу виконується, то проводиться завантаження в регістр-лічильник команд нового значення. Якщо ж умова переходу не виконується, лічильник команд просто нарощується, і процесор вибирає і виконує наступну по порядку команду.Спеціально для перевірки умов переходу застосовується команда порівняння (CMP), що передує команді умовного переходу (або навіть декільком командам умовних переходів). Але прапори можуть встановлюватися і будь-який інший командою, наприклад командою пересилання даних, будь-якої арифметичної або логічної командою. Відзначимо, що самі команди переходів прапори не змінюють, що як раз і дозволяє ставити кілька команд переходів одну за другой.Совместное використання декількох команд умовних і безумовних переходів дозволяє процесору виконувати розгалужені алгоритми будь-якої складності. Для прикладу на рис. 3.13 показано розгалуження програми на дві гілки з подальшим з'єднанням, а на рис. 3.14 - розгалуження на три гілки з подальшим соедіненіем.Команди переходів з подальшим поверненням в точку, з якої був зроблений перехід, застосовуються для виконання підпрограм, тобто допоміжних програм. Ці команди називаються також командами виклику підпрограм (поширена назва - CALL). Використання підпрограм дозволяє спростити структуру основної програми, зробити її більш логічною, гнучкою, легкою для написання і налагодження. У той же час треба враховувати, що широке використання підпрограм, як правило, збільшує час виконання програми. Мал. 3.13. Реалізація розгалуження на дві гілки. Мал. 3.14. Реалізація розгалуження на три веткі.Все команди переходів з поверненням припускають безумовний перехід (вони не перевіряють ніяких прапорів). При цьому вони вимагають одного вхідного операнда, який може вказувати як абсолютне значення нового адреси, так і зміщення, складатися з поточним значенням адреси. Поточне значення лічильника команд (поточний адресу) зберігається перед виконанням переходу в стеке.Для зворотного повернення в точку виклику підпрограми (точку переходу) використовується спеціальна команда повернення (RET або RTS). Ця команда витягує із стека значення адреси команди переходу і записує його в регістр-лічильник команд.Особое місце серед команд переходу з поверненням займають команди переривань (поширена назва - INT). Ці команди в якості вхідного операнда вимагають номер переривання (адреса вектора). Обслуговування таких переходів здійснюється точно так же, як і апаратних переривань. Тобто для виконання даного переходу процесор звертається до таблиці векторів переривань і отримує з неї за номером переривання адреса пам'яті, в який йому необхідно перейти. Адреса виклику переривання і вміст регістра стану процесора (PSW) зберігаються в стеку. Збереження PSW - важлива відмінність команд переривання від команд переходів з возвратом.Команди переривань у багатьох випадках виявляються зручніше, ніж звичайні команди переходів з поверненням. Сформувати таблицю векторів переривань можна один раз, а потім вже звертатися до неї в міру необхідності. Номер переривання відповідає номеру підпрограми, тобто номеру функції, виконуваної підпрограмою. Тому команди переривання набагато частіше включаються в системи команд процесорів, ніж звичайні команди переходів з возвратом.Для повернення з підпрограми, викликаної командою переривання, використовується команда повернення з переривання (IRET або RTI). Ця команда витягує із стека збережене там значення лічильника команд і регістра стану процесора (PSW) Відзначимо, що у деяких процесорів передбачені також команди умовних переривань, наприклад, команда переривання при переполненіі.Конечно, в даному розділі ми розглянули тільки основні команди, найбільш часто зустрічаються в процесорах. У конкретних процесорів можуть бути і багато інших команд, що не належать до перерахованих груп команд. Але вивчати їх треба вже після того, як обраний тип процесора, відповідний для завдання, розв'язуваної даної мікропроцесорної системою.

 

 Глава 4. Організація мікроконтролерів
 6. Лекція: Процессорное ядро ??і пам'ять мікроконтролерів
 Основною особливістю сучасного етапу розвитку МПС є завершення переходу від систем, виконаних на основі декількох великих ІС, до однокристальним МК, які об'єднують в одному кристалі всі основні елементи МПС: центральний процесор (ЦП), постійний запам'ятовуючий пристрій (ПЗУ), оперативний пристрій ( ОЗУ), порти введення / виводу, таймери.4.1. Класифікація і структура мікроконтроллеровВ даний час випускається цілий ряд типів МК. Всі ці прилади можна умовно розділити на три основні класи:
  • 8-розрядні МК для вбудованих додатків;
  • 16- і 32-розрядні МК;
  • цифрові сигнальні процесори (DSP).
 Найбільш поширеним представником сімейства МК є 8-розрядні прилади, широко використовувані в промисловості, побутової та комп'ютерної техніки. Вони пройшли в своєму розвитку шлях від найпростіших приладів з відносно слаборозвиненою периферією до сучасних багатофункціональних контролерів, що забезпечують реалізацію складних алгоритмів керування в реальному масштабі часу. Причиною життєздатності 8-розрядних МК є використання їх для управління реальними об'єктами, де застосовуються, в основному, алгоритми з переважанням логічних операцій, швидкість обробки яких практично не залежить від розрядності процессора.Росту популярності 8-розрядних МК сприяє постійне розширення номенклатури виробів, що випускаються такими відомими фірмами, як Motorola, Microchip, Intel, Zilog, Atmel і багатьма іншими. Сучасні 8-розрядні МК мають, як правило, поруч характерних ознак. Перелічимо основні з них:
  • модульна організація, при якій на базі одного процесорного ядра (центрального процесора) проектується ряд (лінійка) МК, що розрізняються обсягом і типом пам'яті програм, обсягом пам'яті даних, набором периферійних модулів, частотою синхронізації;
  • використання закритої архітектури МК, яка характеризується відсутністю ліній магістралей адреси і даних на висновках корпусу МК. Таким чином, МК являє собою закінчену систему обробки даних, нарощування можливостей якої з використанням паралельних магістралей адреси і даних не передбачається;
  • використання типових функціональних периферійних модулів (таймери, процесори подій, контролери послідовних інтерфейсів, аналого-цифрові перетворювачі та ін.), що мають незначні відмінності в алгоритмах роботи в МК різних виробників;
  • розширення числа режимів роботи периферійних модулів, які задаються в процесі ініціалізації регістрів спеціальних функцій МК.
 При модульному принципі побудови всі МК одного сімейства містять процесорний ядро, однакове для всіх МК даного сімейства, і змінюваний функціональний блок, який відрізняє МК різних моделей. Структура модульного МК наведена на рис. 4.1.Процессорное ядро ??включає в себе:
  • центральний процесор;
  • внутрішню контролерну магістраль (ВКМ) у складі шин адреси, даних і управління;
  • схему синхронізації МК;
  • схему управління режимами роботи МК, включаючи підтримку режимів зниженого енергоспоживання, початкового запуску (скидання) і т.д.
 Змінний функціональний блок включає в себе модулі пам'яті різного типу і об'єму, порти введення / виводу, модулі тактових генераторів (Г), таймери. У відносно простих МК модуль обробки переривань входить до складу процесорного ядра. У більш складних МК він являє собою окремий модуль з розвиненими можливостями. До складу змінюваного функціонального блоку можуть входити і такі додаткові модулі як компаратори напруги, аналого-цифрові перетворювачі (АЦП) та інші. Кожен модуль проектується для роботи в складі МК з урахуванням протоколу ВКМ. Даний підхід дозволяє створювати різноманітні за структурою МК в межах одного сімейства. Мал. 4.1. Модульна організація МК.
 4.2. Процесорний ядро ??мікроконтроллера4.2.1. Структура процесорного ядра МКОсновнимі характеристиками, визначальними продуктивність процесорного ядра МК, є:
  • набір регістрів для зберігання проміжних даних;
  • система команд процесора;
  • способи адресації операндів в просторі пам'яті;
  • організація процесів вибірки і виконання команди.
 З точки зору системи команд і способів адресації операндів процесорний ядро ??сучасних 8-розрядних МК реалізує один з двох принципів побудови процесорів:
  • процесори з CISC-архітектурою, що реалізують так звану систему команд (Complicated Instruction Set Computer);
  • процесори з RISC-архітектурою, що реалізують скорочену систему команд (Reduced Instruction Set Computer).
 CISC-процесори виконують великий набір команд з розвиненими можливостями адресації, даючи розробнику можливість вибрати найбільш підходящу команду для виконання необхідної операції. У застосуванні до 8-розрядних МК процесор з CISC-архітектурою може мати однобайтовий, багатобайтових і трехбайтовий (рідко чотирьохбайтового) формат команд. При цьому система команд, як правило, неортогональної, тобто в повному обсязі команди можуть використовувати будь-який із способів адресації стосовно до будь-якого з регістрів процесора. Вибірка команди на виконання здійснюється побайтно протягом декількох циклів роботи МК. Час виконання команди може складати від 1 до 12 циклів. До МК з CISC-архітектурою відносяться МК фірми Intel з ядром MCS-51, які підтримуються в даний час цілим рядом виробників, МК сімейств НС05, НС08 і НС11 фірми Motorola і ряд других.В процесорах з RISC-архітектурою набір виконуваних команд скорочений до мінімуму . Для реалізації більш складних операцій доводиться комбінувати команди. При цьому всі команди мають формат фіксованої довжини (наприклад, 12, 14 або 16 біт), вибірка команди з пам'яті і її виконання здійснюється за один цикл (такт) синхронізації. Система команд RISC-процесора передбачає можливість рівноправного використання всіх регістрів процесора. Це забезпечує додаткову гнучкість при виконанні ряду операцій. До МК з RISC-процесором відносяться МК AVR фірми Atmel, МК PIC16 і PIC17 фірми Microchip і другіе.На перший погляд, МК з RISC-процесором повинні мати більш високу продуктивність у порівнянні з CISC МК при одній і тій же тактовій частоті внутрішньої магістралі. Однак на практиці питання про продуктивність більш складний і неоднозначен.Во-перше, оцінка продуктивності МК за часом виконання команд різних систем (RISC і CISC) не зовсім коректна. Зазвичай продуктивність МП і МК прийнято оцінювати числом операцій пересилання «регістр-регістр», які можуть бути виконані протягом однієї секунди. У МК з CISC-процесором час виконання операції «регістр-регістр» складає від 1 до 3 циклів, що, здавалося б, поступається продуктивності МК з RISC-процесором. Однак прагнення до скорочення формату команд при збереженні ортогональності системи команд RISC-процесора приводить до вимушеного обмеження числа доступних в одній команді регістрів. Так, наприклад, системою команд МК PIC16 передбачена можливість пересилання результату операції тільки в один з двох регістрів - регістр-джерело операнда f або робочий регістр W. Таким чином, операція пересилання вмісту одного з доступних регістрів до іншого (не джерело операнда і не робочий) зажадає використання двох команд. Така необхідність часто виникає при пересиланні вмісту одного з регістрів загального призначення (РОН) в один з портів МК. У той же час, в системі команд більшості CISC-процесорів присутні команди пересилання вмісту РОН в один з портів введення / виводу. Тобто більш складна система команд іноді дозволяє реалізувати більш ефективний спосіб виконання операціі.Во-друге, оцінка продуктивності МК по швидкості пересилання «регістр-регістр» не враховує особливостей конкретного реалізованого алгоритму керування. Так, при розробці швидкодіючих пристроїв автоматизованого керування основну увагу слід приділяти часу виконання операцій множення і ділення при реалізації рівнянь різних передавальних функцій. А при реалізації пульта дистанційного керування побутовою технікою варто оцінювати час виконання логічних функцій, які використовуються при опитуванні клавіатури і генерації послідовної кодової посилки управління. Тому в критичних ситуаціях, що вимагають високої швидкодії, слід оцінювати продуктивність на безлічі тих операцій, які переважно використовуються в алгоритмі управління і мають обмеження за часом виполненія.В-третє, необхідно ще враховувати, що зазначені в довідкових даних на МК частоти синхронізації зазвичай відповідають частоті підключається кварцового резонатора, в той час як тривалість циклу центрального процесора визначається частотою обміну по ВКМ. Співвідношення цих частот індивідуально для кожного МК і повинно бути прийнято до уваги при порівнянні продуктивності різних моделей контроллеров.С точки зору організації процесів вибірки і виконання команди в сучасних 8-розрядних МК застосовується одна з двох уже згадуваних архітектур МПС: фон-неймановская (принстонська) або гарвардская.Основной особливістю фон-неймановской архітектури є використання загальної пам'яті для зберігання програм і даних, як показано на рис. 4.2. Мал. 4.2. Структура МПС з фон-неймановской архітектурой.Основное перевага архітектури Фон-Неймана - спрощення пристрою МПС, так як реалізується звертання тільки до однієї загальної пам'яті. Крім того, використання єдиної області пам'яті дозволяло оперативно перерозподіляти ресурси між областями програм і даних, що істотно підвищувало гнучкість МПС з точки зору розробника програмного забезпечення. Розміщення стека в загальній пам'яті полегшувало доступ до його вмісту. Не випадково тому фон-неймановская архітектура стала основною архітектурою універсальних комп'ютерів, включаючи персональні компьютери.Основной особливістю гарвардської архітектури є використання роздільних адресних просторів для зберігання команд і даних, як показано на рис. 4.3. Мал. 4.3. Структура МПС з Гарвардської архітектурой.Гарвардская архітектура майже не використовувалася до кінця 70-х років, поки виробники МК не зрозуміли, що вона дає певні переваги розробникам автономних систем управленія.Дело в тому, що, судячи з досвіду використання МПС для управління різними об'єктами, для реалізації більшості алгоритмів керування такі переваги фон-неймановской архітектури як гнучкість і універсальність не мають великого значення. Аналіз реальних програм управління показав, що необхідний обсяг пам'яті даних МК, використовуваний для зберігання проміжних результатів, як правило, на порядок менше необхідного обсягу пам'яті програм. У цих умовах використання єдиного адресного простору призводило до збільшення формату команд за рахунок збільшення числа розрядів для адресації операндів. Застосування окремої невеликої за обсягом пам'яті даних сприяло скороченню довжини команд і прискоренню пошуку інформації в пам'яті данних.Кроме того, Гарвардська архітектура забезпечує потенційно більш високу швидкість виконання програми в порівнянні з фон-неймановской за рахунок можливості реалізації паралельних операцій. Вибірка наступної команди може відбуватися одночасно з виконанням попередньої, і немає необхідності зупиняти процесор на час вибірки команди. Цей метод реалізації операцій дозволяє забезпечувати виконання різних команд за однакове число тактів, що дає можливість більш просто визначити час виконання циклів і критичних ділянок программи.Большінство виробників сучасних 8-розрядних МК використовують гарвардську архітектуру. Однак Гарвардська архітектура є недостатньо гнучкою для реалізації деяких програмних процедур. Тому порівняння МК, виконаних за різними архитектурам, слід проводити стосовно до конкретного пріложенію.4.2.2. Система команд процесора МКТак ж, як і в будь-який мікропроцесорної системі, набір команд процесора МК включає в себе чотири основні групи команд:
  • команди пересилання даних;
  • арифметичні команди;
  • логічні команди;
  • команди переходів.
 Для реалізації можливості незалежного управління розрядами портів (регістрів) в більшості сучасних МК передбачена також група команд бітового управління (булевий або бітовий процесор). Наявність команд бітового процесора дозволяє істотно скоротити обсяг коду керуючих програм і час їх виполненія.В ряді МК виділяють також групу команд управління ресурсами контролера, що використовується для настройки режимів роботи портів введення / виводу, управління таймером і т.п. У більшості сучасних МК внутрішні ресурси контролера відображаються на пам'ять даних, тому для цілей управління ресурсами використовуються команди пересилання данних.Сістема команд МК в порівнянні з системою команд універсального МП має, як правило, менш розвинені групи арифметичних і логічних команд, зате більш потужні групи команд пересилання даних і управління. Ця особливість пов'язана зі сферою застосування МК, що вимагає, перш за все, контролю навколишнього оточення і формування керуючих воздействій.4.2.3. Схема синхронізації МКСхема синхронізації МК забезпечує формування сигналів синхронізації, необхідних для виконання командних циклів центрального процесора, а також обміну інформацією по внутрішній магістралі. Залежно від виконання центрального процесора командний цикл може включати в себе від одного до декількох (4 - 6) тактів синхронізації. Схема синхронізації формує також мітки часу, необхідні для роботи таймерів МК. До складу схеми синхронізації входять дільники частоти, які формують необхідні послідовності синхросигналов.
 4.3. Пам'ять програм і даних МКВ МК використовується три основних види пам'яті. Пам'ять програм являє собою постійну пам'ять (ПЗУ), призначену для зберігання програмного коду (команд) і констант. Її вміст в ході виконання програми не змінюється. Пам'ять даних призначена для зберігання змінних в процесі виконання програми і являє собою ОЗУ. Регістри МК - цей вид пам'яті включає в себе внутрішні регістри процесора і регістри, які служать для управління периферійними пристроями (регістри спеціальних функцій) .4.3.1. Пам'ять программОсновним властивістю пам'яті програм є її енергонезалежність, тобто можливість зберігання програми при відсутності харчування. З точки зору користувачів МК слід розрізняти такі типи незалежної пам'яті програм:
  • ПЗУ масочного типу - mask-ROM. Вміст осередків ПЗУ цього типу заноситься при її виготовленні за допомогою масок і не може бути згодом замінено або допрограмміровано. Тому МК з таким типом пам'яті програм слід використовувати тільки після досить тривалої дослідної експлуатації. Основним недоліком даної пам'яті є необхідність значних витрат на створення нового комплекту фотошаблонів і їх впровадження у виробництво. Зазвичай такий процес займає 2-3 місяці і є економічно вигідним тільки при випуску десятків тисяч приладів. ПЗУ масочного типу забезпечують високу надійність зберігання інформації через програмування в заводських умовах з подальшим контролем результату.
  • ПЗУ, програмовані користувачем, з ультрафіолетовим стиранням - EPROM (Erasable Programmable ROM). ПЗУ даного типу програмуються електричними сигналами і стираються за допомогою ультрафіолетового опромінення. Осередок пам'яті EPROM являє собою МОП-транзистор з «плаваючим» затвором, заряд на який переноситься з керуючого затвора при подачі відповідних електричних сигналів. Для стирання вмісту комірки вона опромінюється ультрафіолетовим світлом, який повідомляє заряду на плаваючому затворі енергію, достатню для подолання потенційного бар'єру і стікання на підкладку. Цей процес може тривати від кількох секунд до кількох хвилин. МК з EPROM допускають багаторазове програмування і випускаються в керамічному корпусі з кварцовим віконцем для доступу ультрафіолетового світла. Такий корпус стоїть досить дорого, що значно збільшує вартість МК. Для зменшення вартості МК з EPROM його укладають в корпус без віконця (версія EPROM з одноразовим програмуванням).
  • ПЗУ, одноразово програмовані користувачем, - OTPROM (One-Time Programmable ROM). Являють собою версію EPROM, виконану в корпусі без віконця для зменшення вартості МК на його основі. Скорочення вартості при використанні таких корпусів настільки значно, що останнім часом ці версії EPROM часто використовують замість масочний ПЗУ.
  • ПЗУ, програмовані користувачем, з електричним стиранням - EEPROM (Electrically Erasable Programmable ROM). ПЗУ даного типу можна вважати новим поколінням EPROM, в яких стирання осередків пам'яті проводиться також електричними сигналами за рахунок використання тунельних механізмів. Застосування EEPROM дозволяє стирати і програмувати МК, не знімаючи його з плати. Таким способом можна проводити налагодження і модернізацію програмного забезпечення. Це дає величезний виграш на початкових стадіях розробки мікроконтролерних систем або в процесі їх вивчення, коли багато часу йде на пошук причин непрацездатності системи та виконання циклів стирання-програмування пам'яті програм. За ціною EEPROM займають середнє положення між OTPROM і EPROM. Технологія програмування пам'яті EEPROM допускає побайтово стирання і програмування осередків. Незважаючи на очевидні переваги EEPROM, тільки в рідкісних моделях МК така пам'ять використовується для зберігання програм. Пов'язано це з тим, що, по-перше, EEPROM мають обмежений обсяг пам'яті. По-друге, майже одночасно з EEPROM з'явилися Flash-ПЗУ, які при подібних споживчих характеристиках мають більш низьку вартість;
  • ПЗУ з електричним стиранням типу Flash - Flash-ROM. Функціонально Flash-пам'ять мало відрізняється від EEPROM. Основна відмінність полягає в способі стирання записаної інформації. У пам'яті EEPROM стирання проводиться окремо для кожного осередку, а в Flash-пам'яті прати можна тільки цілими блоками. Якщо необхідно змінити вміст однієї комірки Flash-пам'яті, буде потрібно перепрограмувати весь блок. Спрощення декодуючих схем у порівнянні з EEPROM привело до того, що МК з Flash-пам'яттю стають конкурентоспроможними по відношенню не тільки до МК з однократно програмованими ПЗУ, а й з масочного ПЗУ також.
 4.3.2. Пам'ять даннихПамять даних МК виконується, як правило, на основі статичного ОЗУ. Термін «статична» означає, що вміст комірок ОЗУ зберігається при зниженні тактової частоти МК до як завгодно малих значень (з метою зниження енергоспоживання). Більшість МК мають такий параметр, як «напруга зберігання інформації» - USTANDBY. При зниженні напруги живлення нижче мінімально допустимого рівня UDDMIN, Але вище рівня USTANDBY робота програми МК виконуватися не буде, але інформація в ОЗП зберігається. При відновленні напруги живлення можна буде скинути МК і продовжити виконання програми без втрати даних. Рівень напруги зберігання становить зазвичай близько 1 В, що дозволяє в разі потреби перевести МК на харчування від автономного джерела (батареї) і зберегти в цьому режимі дані ОЗУ.Об'ем пам'яті даних МК, як правило, невеликий і становить зазвичай десятки і сотні байт. Цю обставину необхідно враховувати при розробці програм для МК. Так, при програмуванні МК константи, якщо можливо, не зберігаються як змінні, а заносяться в ПЗУ програм. Максимально використовуються апаратні можливості МК, зокрема, таймери. Прикладні програми повинні орієнтуватися на роботу без використання великих масивів данних.4.3.3. Регістри МККак і все МПС, МК мають набір регістрів, які використовуються для управління його ресурсами. У число цих регістрів входять звичайно регістри процесора (акумулятор, регістри стану, індексні регістри), регістри управління (регістри управління перериваннями, таймером), регістри, що забезпечують введення / виведення даних (регістри даних портів, регістри управління паралельним, послідовним або аналоговим вводом / виводом ). Звернення до цих регістрів може здійснюватися по-разному.В МК з RISC-процесором все регістри (часто й акумулятор) розташовуються по явно задається адресами. Це забезпечує більш високу гнучкість при роботі процессора.Однім з важливих питань є розміщення регістрів в адресному просторі МК. У деяких МК все регістри і пам'ять даних розташовуються в одному адресному просторі. Це означає, що пам'ять даних сполучена з регістрами. Такий підхід називається «відображенням ресурсів МК на пам'ять» .У інших МК адресний простір пристроїв введення / виводу відділено від загального простору пам'яті. Окремий простір введення / виводу дає деяку перевагу процесорам з Гарвардської архітектурою, забезпечуючи можливість зчитувати команду під час звернення до регістру введення / вивода.4.3.4. Стек МКВ мікроконтролерах ОЗУ даних використовується також для організації виклику підпрограм і обробки переривань. При цих операціях вміст програмного лічильника і основних регістрів (акумулятор, регістр стану і інші) зберігається і потім відновлюється при поверненні до основної программе.В фон-неймановской архітектурі єдина область пам'яті використовується, в тому числі, і для реалізації стека. При цьому знижується продуктивність пристрою, так як одночасний доступ до різних видів пам'яті неможливий. Зокрема, при виконанні команди виклику підпрограми наступна команда вибирається після того, як в стек буде поміщено вміст програмного счетчіка.В гарвардської архітектурі стекові операції проводяться в спеціально виділеній для цієї мети пам'яті. Це означає, що при виконанні програми виклику підпрограм процесор з Гарвардської архітектурою виробляє кілька дій одновременно.Необходімо пам'ятати, що МК обох архітектур мають обмежену ємність пам'яті для зберігання даних. Якщо в процесорі є окремий стек і обсяг записаних в нього даних перевищує його ємність, то відбувається циклічна зміна вмісту покажчика стека, і він починає посилатися на раніше заповнену комірку стека. Це означає, що після занадто великої кількості викликів підпрограм в стеці виявиться неправильний адресаповернення. Якщо МК використовує загальну область пам'яті для розміщення даних і стека, то існує небезпека, що при переповненні стека відбудеться запис в область даних або буде зроблена спроба запису завантажуються в стек даних в область ПЗУ.4.3.5. Зовнішня памятьНесмотря на існуючу тенденцію щодо переходу до закритої архітектури МК, в деяких випадках виникає необхідність підключення додаткової зовнішньої пам'яті (як пам'яті програм, так і даних) .Якщо МК містить спеціальні апаратні засоби для підключення зовнішньої пам'яті, то ця операція проводиться штатним способом (як для МП) .Второй, більш універсальний, спосіб полягає в тому, щоб використовувати порти введення / виводу для підключення зовнішньої пам'яті і реалізувати звернення до пам'яті програмними засобами. Такий спосіб дозволяє задіяти прості пристрої введення / виводу без реалізації складних шинних інтерфейсів, однак призводить до зниження швидкодії системи при зверненні до зовнішньої пам'яті.
 Глава 4. Організація мікроконтролерів
 7. Лекція: Організація зв'язку мікроконтролера із зовнішнім середовищем і часом
 У цій лекції розповідається про структуру та організацію портів введення / виводу інформації мікроконтролерів, режимах роботи таймерів і процесорів подій, а також про організацію обробки переривань.
 4.4. Порти введення / виводаКаждий МК має деяку кількість ліній вводу / виводу, які об'єднані в багаторозрядні (частіше 8-розрядні) паралельні порти введення / виводу. У пам'яті МК кожному порту введення / виведення відповідає свою адресу регістра даних. Звернення до регістру даних порту введення / виведення проводиться тими ж командами, що і звернення до пам'яті даних. Крім того, у багатьох МК окремі розряди портів можуть бути опитані або встановлені командами бітового процессора.В залежності від функцій, що реалізовуються розрізняють наступні типи паралельних портів:
  • односпрямовані порти, призначені тільки для введення або тільки для виведення інформації;
  • двонаправлені порти, напрямок передачі яких (введення або виведення) визначається в процесі ініціалізації МК;
  • порти з альтернативної функцією (мультиплексовані порти). Окремі лінії цих портів використовуються спільно з вбудованими периферійними пристроями МК, такими як таймери, АЦП, контролери послідовних інтерфейсів;
  • порти з програмно керованої схемотехнікою вхідного / вихідного буфера.
 Порти виконують роль пристроїв тимчасового узгодження функціонування МК і об'єкта управління, які в загальному випадку працюють асинхронно. Розрізняють три типи алгоритмів обміну інформацією між МК і зовнішнім пристроєм через паралельні порти введення / виводу:
  • режим простого програмного введення / виведення;
  • режим введення / виведення зі стробированием;
  • режим введення / виводу з повним набором сигналів підтвердження обміну.
 Типова схема двонаправленого порту введення / виведення МК наведена на рис. 4.4. Мал. 4.4. Типова схема двонаправленого порту введення / виведення МК.Тріггер управління дозволяє висновок даних на зовнішній висновок. У сучасних МК, як правило, забезпечується індивідуальний доступ до тригера даних і управління, що дозволяє використовувати кожну лінію незалежно в режимі введення або вивода.Необходімо звернути особливу увагу на те, що при введенні даних зчитується значення сигналу, що надходить на зовнішній висновок, а не вміст тригера даних. Якщо до зовнішнього висновку МК підключені виходи інших пристроїв, то вони можуть встановити свій рівень вихідного сигналу, який і буде лічений замість очікуваного значення тригера данних.Другім поширеним варіантом схемотехнической організації порту введення / виведення є висновок з «відкритим джерелом», званий ще «квазідвунаправленние ». Така організація виведення дозволяє створювати шини з об'єднанням пристроїв за схемою «монтажне И».

 



Попередня   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   Наступна

Цикли обміну по перериваннях | Цикли обміну в режимі ПДП | Проходження сигналів по магістралі | функції процесора | функції пам'яті | методи адресації | сегментування пам'яті | Адресація байтів і слів | регістри процесора | Система команд процесора |

загрузка...
© um.co.ua - учбові матеріали та реферати