22977

Мікропроцесор КР1810ВМ86 (8086)

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Але у порівнянні з МП80 він має такі істотні відміни: при збереженні тієї ж nМОН технології була досягнута вища ступінь інтеграції і на кристалі 55 х 55 мм розташовано біля 30 тисяч транзисторів; зменшено інерційність логічних елементів і тактову частоту підвищено до 5 8 МГц; завдяки цьому продуктивність мікропроцесора збільшилась на порядок; розширено розрядність шини даних до 16 розрядів; розширено розрядність шини адреси до 20 розрядів таким чином забезпечено можливість адресувати пам’ять до 1 Мбайт; розширено у кілька разів...

Украинкский

2013-08-04

6.05 MB

14 чел.

Лекція № 12

Мікропроцесор КР1810ВМ86   (8086)

Мікропроцесор КР1810ВМ86 (далі як МП-86) являє собою подальший розвиток і вдосконалення розглянутого нами МП-80. Але у порівнянні з МП-80 він має такі істотні відміни:

при збереженні тієї ж  n-МОН - технології була досягнута вища ступінь інтеграції і на кристалі 5,5 х 5,5 мм розташовано біля 30 тисяч транзисторів;

зменшено інерційність логічних елементів і тактову частоту підвищено до 5 - 8 МГц; завдяки цьому продуктивність мікропроцесора збільшилась на порядок;

розширено розрядність шини даних до 16 розрядів;

розширено розрядність шини адреси до 20 розрядів, таким чином забезпечено можливість адресувати память до 1 Мбайт;

розширено у кілька разів набір команд.

Все це зробило МП-86 високопродуктивним мікропроцесором, на якому була створена більшість вітизняних ЕОМ. На ньому була також побудована широковідома ПЕОМ типу PC/XT. З другого боку, МП-86 став надалі основою для низки наступних поколінь новітніх процесорів : 80286, 80386, 80486, Pentium, тощо.

Структура мікропроцесорного пристрою на КР1818ВМ86

Блок-схема мікропроцесорного пристрою на процесорі КР1810ВМ86 зображена на рис.12.1.

Мікропроцесор має 40 виводів. Більшу кількість виводів не вдалось зробити з технологічних причин. Тому тут не вдалось зробити роздільно виводи ША та ШД, як це було, наприклад, у МП-80. В МП-86 скорочення кількості виводів досягнуто шляхом суміщення (мультиплексування) функцій виводів ШД і ША: 16 виводів позначених на рис.12.1 як AD15 - AD0 в різні інтервали часу використовуються або як адресні виводи, або як виводи шини даних. Але оскільки адреса має 20 розрядів, то передбачено ще 4 адресних виводи А19 - А16, на котрі видаються старші біти адреси. З виводів А19 - А16 та AD15 - AD0 адреса через буферний регістр БР потрапляє на 20-розрядну шини адреси і підтримується там протягом всього машинного циклу. З цієї шини адреса потрапляє до памяті або до ЗП введення / виведення. Запис адреси в БР здійснюється за стробом адреси ALE по негативному фронту якого буфер БР сприймає та фіксує адресу.

Чи ця адреса призначена для памяті, або для ЗП, визначається сигналом  (“1” - память(memory); “0” - зовнішній пристрій  (input-output)). Напрямок обміну між МП та цими пристроями визначається сигналами  та ;  = 0  здійснює сприймання даних до МП (читання), а при  = 0  виконується запис інформації в память або у ЗП .

Обмін даними здійснюється через  двоспрямований шинний формувач ШФ, який спрацьовує від строба . Вибір напрямку передачі даних задається сигналом DT/, котрий керує роботою шинного формувача (“1” - від МП назовні (transmitting); “0” - до МП (reseaving)).

Сигнал  визначає роботу блока памяті і буде розглянутий згодом.

Синхросигнал CLK   надходить від ГТІ і задає темп роботи всієї системи;  RDY - сигнал готовності від памяті або від ЗП;  RESET - апаратне скидання МП.  

Часові діаграми роботи процесора

Часова діаграма машинного циклу читання зображена на рис.12.2.  Цей цикл триває 4 такти.

У першому такті  Т1 на ША виводиться адреса А19 - А0. На виводах А15 - А0 вона утримується до третього такту, а на виводах А19 - А16 замінюється у другому такті словом стану S6 - S3. Запис адреси у буфер БР здійснюється стробом ALE, який видається у першому такті. Сигнал напрямку передачі даних DT/ також встановлюється у першому такті (при читанні цей сигнал має низький рівень).

У другому такті, після того як адреса зафіксована у буфері БР, шина AD15 - AD0 перетворюється на шину даних. Сигнал  = 0 наприкінці Т2 відкриває шинний формувач ШФ, а сигнал  = 0 вказує, що відбувається акт читання, який триває весь третій такт. Наприкінці четвертого або пятого  такту всі сигнали знімаються.    

Аналогічно відбувається акт запису даних.

Слово стану S6 - S3 складається з чотирьох розрядів, які по лініях А19 - А16 передаються після того як адреса зафіксована в буфері БР. Значення цих бітів буде розглянуто далі.  

Організація памяті

Особливість МП-86 полягає в тому, що він є перехідним етапом від простих 8-розрядних процесорів до багаторозрядних. Тому для того щоб мати можливість використовувати програми та комплектуючі ІМС, які були розроблені для 8-розрядних мікропроцесорів, в МП-86 передбачена можливість працювати як з 8-розрядними, так і з 16-розрядними даними. Це дещо ускладнює його апаратну частину.

Блок памяті МП-86 складаєьтся з восьмирозрядних комірок памяті (КП), кожній з яких привласнюється 20-розрядна двійкова адреса. Дані можна записувати в память (або зчитувати з неї) у вигляді 8-розрядних байтів або 16- розрядних слів. В останньому випадку мають бути задіяні дві суміжні комірки памяті. Така двоїстість відображається на організації памяті та роботі з нею.

Уся память складається з двох блоків: блоку комірок з парними адресами та блоку комірок з непарним адресами. Кожний блок може містити до 512 Кбайт і керуватися окремо (рис.12.3.).

 До обох блоків надходять лінії ША А19 - А1. До блоку парних адрес надходить також лінія А0, а до блоку непарних адрес - лінія . Блоки спрацьовують, якщо на цих лініях буде низький рівень (“0”). При роботі з 16-розрядним словом дані з блоку парних КП видаються на молодші розряди ШД, а з блоку непарних КП - на старші розряди ШД. Результати, які одержуються при різних комбінаціях сигналів А0 та  подано у табл.12.1.

Як видно, при комбінації  = 0 та А0 = 0 на шину даних видається  ціле 16-розрядне слово, що складається з старшого та молодшого байтів. При  = 0 та А0 = 1 видається лише старший байт. А при  = 1  та А0 = 0 лише молодший байт. При комбінації 11 память відключена.

Така організація памяті дозволяє гнучко видавати або слова, або байти. Звідсі ж випливає, що при запису слова йому слід надавати парну адресу. Тоді при зчитуванні слова достатньо буде вказати парну адресу та видати сигнал = 0. В цьому разі слово записується та зчитується за один машинний цикл.  Можна, звичайно, записувати слово і “по частинам”: старший байт за парною адресою, а молодший - за непарною, Тоді і записувати, і видобувати слово доведеться за два заходи, втрачаючи на це два машинні цикли. А це, звичайно, знизить швидкодію системи.

Організація переривань

У мікропроцесорі МП-86 можуть бути переривання трьох типів:

зовнішні, що не можуть бути замасковані;

зовнішні, що можуть бути замасковані;

внутрішні переривання.

Запит на зовнішні переривання що не  можуть бути замасковані, здійснюється через вхід NMI. Ці переривання використовуються у найбільш відповідальних випадках, наприклад, при аварійній зупинці мікропроцесора.

Звичайні переривання від зовнішніх пристроїв можуть бути замасковані (заборонені) програмними засобами. Запити на них подаються на вхід INTR.

Внутрішні переривання закладаються в програму і викликають до дії підпрограми, закладені фіксовано до ПЗП машини.

Особливості адресації в  МП-86

Основна особливість адресації в МП-86 полягає в тому що адреса, за якою звертаються до памяті, має 20 розрядів, тоді як розмір слова складає лише 16 розрядів. Найпростіше, здавалося б, цю проблему можна було розвязати шляхом “прибудовування” до блоку 16-розрядної адреси ще чотирьох старших бітів, які б “озаголовлювали” цей блок (“сторінку”) в памяті1. Однак ці блоки були б надто громіздкими, бо їх обєм складав би 64 Кбайтів і маніпулювати з ними було б незручно.

Тому в МП-86 застосовується більш гнучка система формування виконавчої (фізичної) адреси. Фізична адреса, тобто адреса комірки памяті до якої звертаються, одержується шляхом підсумовування двох зсунутих по відношенню одне до одного 16-розряднних слів. Одне з них має назву базової адреси і зберігається в спеціальних так званих сегментних регістрах (інші назви: сегментна адреса, сегмент, база). Друге слово, що має назву ефективної адреси (або зміщення, внутришньосегментне зміщення, відносна адреса), зберігається в регістрах загального призначення (робочих регістрах). Сукупність цих двох адрес має назву логічної адреси.

Для формування  фізичної адреси !6-розрядну базову адресу зсувають ліворуч на 4 двійкові розряди, а молодші розряди, що лишилися, заповнюють нулями. До 20-розрядного числа, що при цьому утворилось, додають 16-розрядне зміщення. Їх сума і являє собою фізичну адресу. Так наприклад, при базовій адресі 123АН і зміщенні 341ВН процедура формування фізичної адреси матиме вигляд:

Базова адреса звичайно встановлюється і зберігається незмінною на протязі виконання всієї програми. Уся “свобода дії” зконцентрована лише у зміщенні, яке програміст може варіювати як завгодно на свій розсуд. Оскільки зміщення 16-розрядне, програмно доступний обєм памяті в межах одного такого блоку (сегмента) може складати до 64 Кбайт. Здебільша цього буває цілком достатньо.

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

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

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

Стрибки, котрими можна пересувати сегмент у просторі адрес, кратні 16 одиницям. Це набагато менше “сторінок”, про які йшла мова вище. Можливість такого гнучкого переміщення програми у просторі адрес є важливою перевагою системи адресації вживаної в МП-86.

Структурна схема мікропроцесора КР1810ВМ86

Структурна схема мікропроцесора КР1810ВМ86 зображена на рис.12.4. За загальним функціональним призначенням усю схему можна розділити на три частини:

операційний пристрій;

пристрій спряжіння з системною шиною (шинний інтерфейс);

керуючий пристрій.

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

Основою операційного пристрою є АЛП, котрий, власне, і виконує обробку інформації. З внутрішньою шиною даних АЛП повязаний через буферні регістри. Якісний характер результатів фіксується в регістрі ознак. Вся ця частина, в принципі, не відрізняється від аналогічної частини МП-80.

Іншу структуру мають регістри загального призначення (робочі регістри). Їх чотири: AX,BX,CX i DX. Вони шістнадцятирозрядні і в них можна розміщати двобайтні слова. Але ці ж регістри можна використовувати і “по половинках”, записуючи один байт в старшу половину регістру (напр. в ВН), а другий - в молодшу (напр. в BL) і працювати з цими байтами окремо один від одного.

Робочі регістри МП-86 мають кожний своє специфічне призначення. Цим вони відрізняються від робочих регістрів МП-80, де всі регістри (окрім А) рівноцінні. Регістр АХ використовується звичайно при арифметичних операціях з двобайтовими операндами. Регістри АН та AL можуть також бути використаними для подібних цілей при роботі з однобайтовими операндами.

Регістр ВХ вживається для непрямої адресації даних. Тим він подібний до HL - пари  в МП-80. Регістр СХ виконує звичайно функції лічильника в програмних циклах. Регістр DX бере участь у операціях по множенню та діленню слів,  він може також бути використаний і для зберігання даних. Але цей розподіл функцій є в значній мірі умовним і стосується програмного використання регістрів. З апаратної ж точки зору всі ці регістри рівноцінні і кожний з них може виконувати функції іншого.

Двобайтні регістри BP,SP,SI,DI утворюють групу показникових та індексних регістрів. В них містяться зміщення, що використовуються для формування фізичної адреси. З них лише регістр SP - показник стека  - має аналог у МП-80. Для інших регістрів таких аналогій знайти не вдається .

Пристрій спряжіння з шиною також містить групу двобайтових  регістрів.  Регістри CS,DS, SS та ES мають назву сегментних регістрів і в них розташовуються базові адреси відповідних програмних сегментів. Регістр CS містить базову адресу сегменту команд; DS є базою сегмента даних; SS - база сегмента стека; ES - резервний сегмент. Регістр ІР є лічильником команд. В табл.12.2. та на рис.12.5 вказується як звичайно комбінується вміст робочих і базових регістрів для утворення фізичної адреси.

Табл.12.2.

      Тип звернення до памяті

    База

Зміщення

  Примітки

Вибірка  команди

     CS

     IP

Стекова операція

     SS

     SP

Звернення до змінної

     DS

     EA

Базою можуть бути також

   CS,SS,ES

Ланцюжок - джерело

     DS

     SI

Ланцюжок - приймач

     ES

     DI

Ефективна адреса ЕА формується вмістом регістрів BX,BP,SI,DI та їх комбінаціями. Фізична адреса формується шляхом відповідного підсумовування бази і зміщення, котре виконується суматором адреси.

Цікавою особливістю пристрою спряжіння з шиною  у МП-86 є регістр черги адрес. За його допомогою можна в проміжки часу, коли процесор зайнятий виконанням раніш сприйнятої команди, робити вибірку низки наступних команд.  Вибрані команди фіксуються у зсувному регістрі команд, що складається з 6 комірок памяті, і утворюють чергу команд, підготовлених до виконання. Цим вдається використовувати системну шину протягом майже 100% часу і збільшувати загальну швидкодію ЕОМ. Щоправда, коли у програмі зустрічається команда переходу (умовного чи безумовного), або ж команда переходу до підпрограми, черга “ламається” і встановлюється нова черга, що відповідає новим фрагментам задачі.

Структура регістра ознак, принаймі у молодших бітах, подібна до структури ознак МП-80, лише до назви біта додається літера F. Ці біти мають назву флагів.

У старшому байті біт OF сигналізує про переповнення; біти DF, IF, та TF встановлюються програмно. Наприклад, встановленням IF = 0 можна маскувати (забороняти) переривання. Флаг DF визначає напрямок обробки програм - ланцюжків; флаг TF = 1 переводить МП у режим трасування, тобто покрокового виконання команд. Це буває корисно при відлагоджуванні програми.

Тепер можна повернутися до слова стану, що задається сигналами S6 - S3.  Ці сигнали формує сегментний регістр, що приймає участь в утворені фізичної адреси. Іншими словами, ці сигнали вказують, до якого сегмента памяті робиться звернення у даному машинному циклі. Прийнято таке кодування сегментів:

  S4,S3 = 00 резервний сегмент ES

   01 сегмент кодів CS

   10 сегмент стека  SS

   11 сегмент даних  DS

Сигнал S5 відповідає стану флага IF: S5 =0 - переривання заборонені; S5 =1 - переривання дозволені.  Флаг  S6  не використовується .

Наприкінець повернемось до позначення виводів МП-86. Як ми вже казали, їх сорок. Призначення більшості з них нам вже знайомі. Це мультиплексовані виводи  адреси та даних AD15 - AD0. Старші біти адреси А19 - А16  мультиплексовані з бітами слова стану S5 - S3.  

Сигнал визначає дозвіл на старший байт даних.

та  - сигнали читання та запису в память або зовнішній пристрій.

визначає чи то є звернення до памяті (“1”), чи до зовнішнього пристрою (“0”).

ALE - строб для запису адреси у буферний регістр.

DT/ - визначає напрямок руху інформації через шинний формувач даних; сигнал   активізує (відкриває) його.

INTR та  - запит та згода на переривання.

NMI - запит на незамасковане переривання.

HOLD та HLDA - запит та згода на ПДП.

CLK, READY, RESET - знайомі нам сигнали синхронізації, готовності та скидання.

MN/ визначає режим роботи МП-86 - мінімальний або максимальний (багатопроцесорний, тобто паралельно з іншими процесорами, наприклад, зі співпроцесором). У максимальному режимі призначення деяких виводів змінюється, що і показано на рис.12.6 окремо. Сигнали , , QS0, QS1, RG/GT0, RG/GT1 використовуються у роботі зі співпроцесором, про що мова йтиме далі .

Виводи VCC та GND - живлення ІМС.

1 Така “сторінкова” адресація застосовується у нових ЕОМ, починаючи з 80386.