Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcija_5.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
376.32 Кб
Скачать

2. Основні відмінності risc I cisc архітектури.

Архітектура набору команд служить границею між апаратурою і програмним абезпеченням. Архітектра (CISC - Complete Instruction Set Computer) – мікропроцесори з повним набором команд. Для CISC-процесорів характерно: порівняно невелике число регістрів загального призначення; велике число машинних команд; велике число методів адресації; велике число форматів команд різної розрядності; переважання двохадресного формату команд; наявність команд обробки типу регістр-пам’ять. Дешифратори команд займають велику площу кристала, хоча використовується часто лише близько 20% команд.

Архітектура RISC – спрощений набір команд.(RISC - Reduced Instruction Set Computer). Через однотипність команд – зменшена площа кристалу.

До основних відмінностей RISC архітектури відносять :

1.Використання команд фіксованої довжини з малою кількістью типів форматів.

2.Регулярність,що дає змогу завдяки простоті команд використовування одній і самі апаратні пристрою для виконання майже всіх команд.

3.Виконання більшості команд за один машинний цикл.

4.Орієнтованість на регістри - всі операції з даними виконують у регістрах, крім команд завантаження та запису,здійснення яких пов’язане із зверненням до пам’яті.

5. Відсутні операції роботи зі стеком.

6. Видалені складні і рідко використовувані інструкції.

Основнa особливість архітектури - це розділення пам’яті на пам’ять даних та пам’ять команд.

3. Організація пам’яті програм і даних. Поняття про банки пам’яті і область бітової адресації

Пам’ять програм.

Як і в більшості мікроконтролерів, у мікроконтролерів сімейства 8051, пам’ять програм і пам’ять даних є самостійними і незалежними один від одного пристроями, що адресуються різними командами і управляючими сигналами.

Об’єм вбудованої пам’яті програм рівний 4 Кбайт. При зверненні до зовнішньої пам’яті програм всі мікроконтролери сімейства 8051 завжди використовують 16-розрядну адресу, що забезпечує їм доступ до 64 Кбайт ПЗП. Мікроконтролер звертається до програмної пам’яті при читанні коду операції і операндів (використовуючи лічильник команд РС), а також при виконанні команд переносу байту з пам’яті програм в акумулятор. При виконанні команд переносу даних адресація комірки пам’яті програм, з якої будуть прочитані дані, може здійснюватися з використанням як лічильника РС, так і спеціального двобайтового регістра-покажчика даних DPTR.

Враховуючи, що виконання програми після скидання мікроконтролера завжди починається з нульової адреси пам'яті програм, то при включенні живлення почне виконуватися програма, записана у внутрішньому ПЗП мікроконтролера. Мікроконтролери, що не мають внутрішнього ПЗП (наприклад КР1816ВЕ31 і КР1830ВЕ31) можуть працювати тільки із зовнішньою мікросхемою ПЗП місткістю до 64 Кбайт (при використанні портів P1 і P3 в якості розширювача адреси об'єм підключаємого ПЗП може бути збільшений до 1Гбайта). Мікроконтролери сімейства MCS-51 мають зовнішній вивід EA, за допомогою якого можна заборонити роботу внутрішній пам'яті, для чого необхідно подати на вивід EA логічний "0" (з'єднати цей вивід з корпусом). При цьому внутрішня пам'ять програм відключається і, починаючи з нульової адреси, всі звернення відбуваються до зовнішньої пам'яті програм.

  Доступ до зовнішньої пам'яті програм здійснюється в двох випадках:

1) при дії сигналу EA=0 незалежно від адреси звернення

2) у будь-якому випадку, якщо програмний лічильник (РС) містить число більше, ніж максимальний елемент внутрішньої пам'яті програм.

Для читання пам'яті програм використовуються команди MOVC А, A+@DPTR і MOVC А, A+@PC

Розподіл пам'яті програм мікроконтролера КР1830ВЕ51 представлений нижче:

Рисунок 2. Адресний простір пам’яті програм.

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

Память даних

Зовнішня памятьданих.

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

Схема підключення зовнішніх мікросхем пам'яті до мікроконтролерів сімейства MCS-51 показана на рисунку 3.

Рисунок 3. Схема підключення схем зовнішньої пам’яті до мікроконтролерів

сімейства MCS-51

Максимальний об’єм цієї пам’яті визначається регістром DPTR і складає 64 Кбайта. Точно так як і в випадку зовнішньої пам’яті програм, об’єм зовнішньої пам'яті програм, об’єм зовнішньої пам’яті даних може бути збільшений за рахунок використання портів P1 і P3 до 1 Гбайта. Зовнішня пам’ять даних для своєї роботи потребує використання портів P0, P2 і P3. Це призводить до збільшення габаритів пристрою, збільшення рівня завад, і до збільшення вартості. Тому в сучасних пристроях зовнішня пам’ять не використовується.

Для зверенення до зовнішньої пам’яті даних використовуються команди MOVX A, @DPTR (команда читання) і MOVX @DPTR, A (команда запису)

Деколи, для того, щоб зберегти порт P2  в якості порта загального використання, для звернення до пам’яті даних користуються командами MOVX A, @R0 або MOVX A, @R0 (команди читання)

MOVX@R0, A MOVX@R0, A (команди запису)

Рис. 4 – Адресний простір зовнішньої пам’яті даних

Відмітимо, що в якості зовнішньої пам’яті даних можуть бути використані як мікросхеми ОЗП так і ПЗП.

Внутрішня память даних.

Об’єм розміщеної на кристалі пам’яті даних – 128 байт. Об’єм зовнішньої пам’яті даних може досягати 64 Кбайт.

Внутрішня пам’ять даних розділена на 2 області. Простір DSEG область внутрішнього ОЗП даних (з адресами від 00 до 7FH) і область регістрів спеціальних функцій (з адресами від 80Н-0FFH).

Перші 32 байти організовані в 4 банки регістрів загального призначення, що відповідно позначаються банк0- банк3. Кожен з них складається з восьми регістрів R0-R7. В будь-який момент програмі доступний тільки один банк регістрів, номер якого міститься в третьому і четвертому бітах слова стану програми PSW. Адресний простір, що залишився, може конфігуруватись розробником по власному бажанню: в ньому розміщуються стек, системні і користувацькі області даних. Звернення до комірок пам’яті даних можливе двома способами. Перший спосіб – пряма адресація комірки пам’яті. В цьому випадку адреса комірки є операндом відповідної команди. Другий спосіб – непряма адресація за допомогою регістрів R0 чи R1: перед виконанням відповідної команди, в один з них повинна бути записана адреса комірки, до якої необхідно звернутися.

Для доступу до зовнішньої пам’яті даних використовується тільки непряма адресація за допомогою регістрів R0 і R1 або за допомогою 16-розрядного регістра-покажчика DPTR. Він відноситься до групи регістрів спеціальних функцій, і з його допомогою можна адресувати всі 64 Кбайти зовнішньої пам’яті.

Частина пам’яті даних представляє собою так звану бітову область, в ній є можливість за допомогою спеціальних бітових команд адресуватися до кожного розряду комірок пам’яті. Адреса прямо адресованих бітів може бути записана або в вигляді (Адреса байту).(Розряд), наприклад, вираз 21.3 означає третій розряд комірки пам’яті з адресою 21Н, або в вигляді абсолютної бітової адреси. Відповідність цих двох способів адресації можна визначити по таблиці.

Розподіл внутрішньої пам’яті даних можна зобразити наступним чином:

Внутрішній ОЗП даних призначений для тимчасового зберігання інформації, що використовується в процесі виконання програми і займає 128 молодших байт, з адресами від 000h до 07Fh для мікроконтролерів 8051, 8031, КР1816ВЕ31, КР1816ВЕ51, КР1816ВЕ751 КР1830ВЕ31, КР1830ВЕ51, КР1830ВЕ751 або 256 8-розрядниз комірок, з адресами від 000h до 0FFh для всіх інших МК сімейства.

Регістри спеціальних функцій займають адреси внутрішньої пам’яті даних з 080h по 0FFh. Так як адреси регістрів спеціальних функцій співпадають з старшими адресами внутрішнього ОЗП даних, то є особливості при використанні цих адрес внутрішньої пам’яті даних.

Система команд мікроконтролера дозволяє звертатися до комірок внутрішньої пам’яті даних за допомогою прямої і непрямої-регістрової адресації. При зверненні до комірок пам’яті з адресами 0-127 використання любого з цих видів адресації буде здійснювати вибірку однієї і тієї ж комірки пам’яті. При зверненні до комірок ОЗП з адресами 128-256 потрібно користуватися непрямою-регістровою адресацією. Враховуючи, що робота зі стеком ведеться за допомогою непрямої адресації, то є зміст розміщувати в цій області пам’яті стек. Якщо ж потрібно звернутися до регістрів спеціальних функцій, то потрібно використовувати пряму адресацію. Наприклад:

MOV A, 80h ;Скопіювати сигнали з зовнішніх ніжок порта P0 в акумулятор

MOV R0, #80h ;Скопіювати в аккмулятор вміст

MOV A, @R0 ;комірки внутрішнього ОЗП  з адресою 80h

Регістри загального призначення дозволяють писати найефективніші програми. В МК сімейства MCS-51 програмісту доступні вісім регістрів. Більш того, в цьому сімействі МК є цілих чотири набори (банки) регістрів з іменами RB0 - RB3. Банк регістрів складається з восьми восьмирозрядних регістрів з іменами R0, R1, …, R7.  Кілька банків регістров служать для організації незалежної роботи кількох паралельно виконуваних програм. Якщо організація кількох паралельних потоків обробки даних не потрібна, то можна користуватися тільки нульовим банком регістрів, що вмикається автоматично після включення живлення і скидання МК, решта комірок пам’яті використовувати як звичайне ОЗП.

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

MOV A, R0 ;Скопіювати вміст регістру R0 в акумулятор

MOV R7, A ;Скопіювати вміст регістра R7 в акумулятор

або використовуючи їх адресу у внутрішній пам’яті даних (пряма байтова адресація):

MOV A, 0 ;Скопіювати вміст нульової комірки ОЗП в акумулятор

MOV 7, A ;Скопіювати вміст акумулятора в сьому комірку ОЗП

Наступні після банків регістрів внутрішнього ОЗП даних 16 комірок пам’яті (адреси 20Н-2FH) утворюють область пам’яті до якої можлива як байтова, так і бітова адресація. В цих комірках розміщуються 128 програмних флагів (бітових комірок пам’яті). Звернення до окремих бітів цих комірок можливе по їх бітових адресах .Наприклад команди:

SETB 15 ;Запам’ятати в 15 флазі логічну одиницю

JB 15, Mіtka ;якщо в 15 флазі записана логічна одиниця, то перейти на мітку

звертаються до 15 флагу, розміщеному в старшому біті байтової комірки пам’яті 21h. Використання одно бітових комірок пам’яті дозволяє скоротити необхідний для роботи програми об’єм пам’яті даних, так як для зберігання бітових змінних виділяється один біт в пам’яті даних, а не машинне слово, як це робиться в універсальних мікропроцесорах (комп’ютерах).

В бітовій області зосереджено тільки 128 флагів. Адреси, що залишились в бітовому просторі використовуються для бітової адресації в області регістрів спеціальних функцій. Наибільш яскравий приклад використання бітової адресації в області регістрів спеціальних функцій – це звернення до окремих ніжок паралельних портів:

CPL 92 ;Проінвертувати другий біт порта P1

Обдасть пам’яті, що залишилась, використовується як звичайний ПЗП без особливостей.

До адресного простору пам’яті даних примикає адресний простір регістрів спеціальних функцій SFR (Special Function Register).

Регістри спеціальних функцій - це додаткові пристрої, що відображаються в адресний простір внутрішньої пам’яті даних.

Таблиця 1 – Розміщення регістрів спеціальних функцій в просторі SFR

0Е0Н

*АСС

Акумулятор (Accumulator)

0F0H

*B

Регістр розширювач акумулятора (Multiplication Register)

0D0H

*PSW

Слово стану програми (Program Status Word)

080H

*P0

Порт 0 (SFR P0)

090H

*P1

Порт 1 (SFR P1)

0A0H

*P2

Порт 2 (SFR P2)

0B0H

*P3

Порт 3 (SFR P3)

081H

SP

Регістр покажчик стека (Stack Pointer)

083H

DPH

Старший байт регістра покажчика даних DPTR (Data Pointer High)

082H

DPL

Молодший байт регістра покажчика даних DPTR (Data Pointer Low)

08CH

TH0

Старший байт таймера 0

08AH

TL0

Молодший байт таймера 0

08DH

TH1

Старший байт таймера 1

08BH

TL1

Молодший байт таймера 1

089H

TMOD

Регістр режимів таймерів/лічильників (Timer/Counter Mode Control Register)

088H

*TCON

Регістр керування статусу таймерів (Timer/Counter Control Register)

0B8H

*IP

Регістр пріоритетів (Interrupt Priority Control Register)

0A8H

*IE

Регістр маски (дозволу) переривання (Interrupt Enable Register)

087H

PCON

Регістр керування потужністю (Power Control Register)

098H

*SCON

Регістр керування прийомопередавачем (Serial Port Control Register)

099H

SBUF

Буфер прийомопередавача (Serial Data Buffer)

Регістри, що позначені * допускають адресацію своїх окремих біт при використанні команд з групи команд операцій з бітами.

Регістри спеціальних функцій управляють роботою блоків, що входять до МК.

  • Регістри защіпки SFR паралельних портів P0…P3 – служать для вводу-виводу інформації.

  • Дві регістрові пари TH0, TL0 і TH1, TL1 представляють собою регістри двох програмно керованих 16-бітних таймерів-лічильників.

  • Режими таймерів-лічильників задаються з використанням регістру TMOD, а керування ним здійснюється за допомогою регістра TCON.

  • Для управління режимами енергоспоживання мікро-ЕОМ використовується регістр PCON.

  • Регістри ІР і ІЕ управляють роботою системи переривань мікро-ЕОМ.

  • Регістри SBUF і SCON – роботою прийомопередавача послідовного порту.

  • Регістр-покажчик стека SP в мікро-ЕОМ даного сімейства МК- 8-бітний. Він може адресувати будь-яку область внутрішньої пам’яті даних. У МК сімейства 8051 стек «росте вгору», тобто перед виконанням команди PUSH або CALL вміст стека інкрементується, після чого відбувається запис інформації в стек. Відповідно, при одержанні інформації з стека регістр SP декрементується після отримання інформації. В процесі ініціалізації мікро-ЕОМ після сигналу скидання чи при включенні напруги живлення в SP заноситься код 07Н. це означає, що перший елемент стеку буде розміщуватись в комірці пам’яті з адресою 08Н.

  • Регістр-покажчик даних DPTR найчастіше використовують для фіксації 16-бітної адреси в операціях звернення до зовнішньої пам’яті програм і даних. Він може виступати як в вигляді одного 16-бітного регістра, так і в вигляді 2 незалежних регістрів DPL і DPH.

  • Акумулятор (АСС) є джерелом операнда і місцем фіксації результату при виконанні арифметичних, логічних операцій і ряду операцій передачі даних. Крім того, тільки з використанням акумулятора можуть бути виконані операції зсувів, перевірка на 0, формування флага паритету і т.п. в розпорядженні користувача є 8 регістрів загального призначення R0-R7 одного з 4 можливих банків. При виконанні багатьох команд в АЛП формується ряд ознак операції (флагів), які фіксуються в регістрі PSW.

  • Регістр В використовується як джерело і як приймач при операціях множення і ділення, звернення до нього, як до регістра SFR, здійснюється аналогічно акумулятору.

  • При виконанні ряду команд в арифметико-логічному пристрої (АЛП) формуються ознаки операції – флаги, які фіксуються в регістрі PSW.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]