Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач (переделанный под меня).doc
Скачиваний:
52
Добавлен:
17.11.2018
Размер:
502.78 Кб
Скачать

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

Укрупнена структурна схема МП ВМ86 (Мал. 1.2) містить дві відносно незалежні частини: операційний пристрій, що реалізує задані командою операції, і пристрій шинного інтерфейсу, що здійснює вибірку команд із пам'яті, а також звертання до пам'яті і зовнішніх пристроїв для зчитування операндів і запису результатів. Обидва пристрої можуть працювати паралельно, що забезпечує сполучення в часі процесів вибірки і виконання команд. Це підвищує швидкодію МП, тому що операційний пристрій, як правило, виконує команди, коди яких уже знаходяться в МП, і тому такти вибірки команди не включаються в її цикл.

Операційний пристрій МП містить групу, загальних регістрів, арифметико-логічний пристрій (АЛУ), регістр прапорів P і блок керування. Вісім 16-бітових регістрів загального призначення беруть участь у багатьох командах. У цих випадках регістри загального призначення кодуються трьох бітовим кодом, котрий розміщається у відповідному полі (чи полях) формату команди. Відповідно до основного призначення розглянутих регістрів виділяють регістри АХ, ВХ, СХ, DХ, використовувані насамперед для збереження даних, і регістри SР, ВР, S1, D1, що зберігають головним чином

Мал.. 1.2 структурна схема МП ВМ86

адре сну інформацію. Особливістю регістрів АХ, ВХ, СХ, DХ являється те, що вони допускають роздільне використання їхніх молодших байтів АL, BL, СL, D1, і старших байтів А11, B11, CП, D11.

Всі інші регістри являються неподільними й оперують 16-бітовими словами, навіть в випадку використання тільки старшого чи молодшого байтів. Вказівні регістри SР і ВР зберігають змішанні адреси в межах поточного стекового сегмента пам'яті, а індексні регістри S1 і D1 зберігають змішані адреси відповідно в поточному сегменті даних і в поточному додатковому сегменті. Крім основних функцій, що відповідають назві регістрів, загальні регістри виконують спеціальні функції.

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

До АЛУ примикає регістр прапорів F. Значення цих прапорів використовуються для реалізації умовних переходів, що змінюють хід виконанні програми.

До АЛУ примикає регістр прапорів F (мал. 1.3, де X позначає невизначений стан біта). Його молодший байт FL повністю відповідає регістру прапорів, а старший байт FH містить чотири прапори, відсутні. Шість арифметичних прапорів фіксують певні ознаки результату виконання операції (арифметичного, логічної, зрушення або завантаження регістра прапорів). Значення цих прапорів (крім прапора AF) використовуються для реалізації умовних переходів, що змінюють хід виконання програми. Різні команди впливають на прапори по-різному.

Призначення арифметичних прапорів.

CF - прапор переносу, фіксує значення переносу (заема), що виникає при Додаванню (вирахуванні) байтів або слів, а також значення висунутого біта при зрушенні операнда.

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

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

ZF - прапор нуля, сигналізує про одержання нульового результату операції.

SF - прапор знака, дублює значення старшого біта результату, що при використанні Кдаткового коду відповідає знаку числа.

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

ницу, якщо відбувається перенос у старший біт і немає переносу зі старшого біта або є перенос зі старшого біта, але відсутній перенос у нього; у противному випадку прапор OF установлюється в нуль. При вирахуванні він установлюється в одиницю, коли виникає позика зі старшого біта, але позика в старший біт відсутня або є позика в старший біт, але відсутній позика з нього. Є спеціальна команда переривання при переповненні, що у зазначених випадках генерує програмне переривання.

Для керування деякими діями МП призначені три додаткових прапори.

DF - прапор напрямку, керований командами CLD і STD; визначає порядок обробки ланцюжків у відповідних командах: від менших адрес (DF = 0) або від більших (DF=1).

IF - прапор дозволу переривань, керований за Допомогою команд CLI і STI; при IF=1 мікропроцесор сприймає (розпізнає) і відповідно реагує на запит переривання по входу INTR; при IF = 0 переривання по цьому вході забороняються (маскуються) і МП ігнорує вступників запити переривань. Значення прапора IF не впливає на сприйняття зовнішніх немаскуємих переривань по входу NMI, а також внутрішніх (програмних) переривань, виконуваних по команді INT.

TF - прапор трасування (простежування). При TF=1 МП переходить у покомандний (покроковий) режим роботи, застосовуваний при налагодженні програм, коли автоматично генерується сигнал внутрішнього переривання типу 1 (див. мал. 1.5) після виконання кожної команди з метою переходу до відповідної підпрограми, що звичайно забезпечує індикацію вмісту внутрішніх регістрів МП. Команди установки або скидання прапора TF відсутні, так що керування цим прапором здійснюється опосередковано, шляхом пересилання вмісту регістра прапорів F через стек у загальний регістр, установки необхідного значення восьмого біта й зворотного пересилання сформованого слова в регістр F.

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

Пристрій шинного інтерфейсу (шинний інтерфейс) містить сегментні регістри, чергу команд, буфер шини адреси/даних, буфер шипи адреси/стану, суматор адрес, покажчик команд ІР.

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

Сегментні регістри зберігають базові (початкові) адреси сегментів пам'яті кодового сегмента СS, у якому міститься програма; стекового сегмента SS, сегмента даних DS; додаткового сегмента ES, у якому звичайно містяться дані.

Суматор адрес здійснює обчислення 20-бітових фізичних адрес.

Покажчики команд IР зберігає зсув наступної команди в поточному кодовому сегменті, тобто указує на наступну по черзі команду.