22985

Мікропроцесори 80386 і 80486

Лекция

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

Це дозволяє йому здійснювати обмін з пам’яттю зі швидкістю до 32 Мбайт сек і виконувати до 5 мільйонів операцій у секунду MIPS. Отже під час виконання одної команди відбувається декодування другої а третя видобувається з пам’яті. Усі можливості МП386 мультипрограмність віртуальна пам’ять захист пріоритети зповна відкриваються лише в захищеному режимі. У порівнянні з МП286 у МП386 існують істотні відміни в організації віртуальної пам’яті.

Украинкский

2013-08-04

4.79 MB

4 чел.

Лекція № 19

Мікропроцесори 80386 і 80486

Мікропроцесор 80386 є подальшим розвитком мікропроцесорів лінії Intel. Це перший мікропроцесор з повними 32-розрядною шиною адреси і шиною даних. Завдяки такій великій розрядності він дозволяє здійснювати адресацію в реальному режимі до 4 Гбайт, а у віртуальному - до 64 Тбайт, тобто до 246 байтів.

Тактова частота у різних його версій складає кілька десятків мегагерц і у останній версії досягає 66 МГц. Це дозволяє йому здійснювати обмін з памяттю зі швидкістю до 32 Мбайт/сек і виконувати до 5 мільйонів операцій у секунду (MIPS). У віртуальному режимі він має чотирьохрівневу систему захисту програм і даних.

Мікропроцесор виготовлений за вдосконаленою МОН - технологією з великою щільністю розташування елементів. На кремнійовому кристалі 10 х 10 мм розташовано 275000 транзисторів мікронних розмірів. Мікропроцесор змонтовано у керамічному корпусі з 132 матрично розташованими виводами. Живиться він від однієї напруги у  +5В.

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

 З причин складної іерархічної  системи сегментації, яка використовується в МП-386, блок формування адрес поділено на дві частини: блок керування сегментами та блок керування сторінками. Зміст цих блоків буде розяснено далі, коли мова йтиме про особливості віртуальної адресації цього мікропроцесора.

Вартою уваги особливістю МП-386 є, без сумнівів, його 32-розрядні робочі регістри(рис.19.1). Цих регістрів 8 (як і у МП-86 та МП-286) і вони позначаються тими ж самими літерами, лише з додаванням літери Е ( ЕАХ, ЕВХ,.ЕСХ . .). Але вони можуть бути задіяні і на 16 розрядів з тими ж позначеннями,  як і в МП-86.Розрядність даних встановлюється подаванням на вивід BS16 високого або низького рівня напруги.  Можлива робота і з 8-розрядними операндами. Все це зроблено для того щоб  МП-386 був програмно-сумісним зі своїми попередниками, тобто міг виконувати програми створені для МП-86 і МП-286.

Лічильник команд та регістр ознак також 32-розрядні. Більшість бітів регістра ознак мають той же зміст, як і у МП-86 та МП-286. Порівняно з ними додано ще два флаги: F16 - флаг поновлення та  F17 - флаг VM (встановлення віртуального режиму, про нього мова йтиме далі). Розряди F18 - F31 не задіяні.

 

Сегментних регістрів шість. До відомих нам чотирьох додано ще два додаткових сегментних регістрів даних FS та GS. 

Для керування роботою процесора передбачені 4 регістри керування CR0 - CR3, в котрих окремі біти визначають характер роботи процесора.

Так само як і МП-286, мікропроцесор МП-386 може працювати в двох режимах: у режимі реальної адресації та у режимі віртуальної адресації з захистом. Реальний режим використовується як перехідний до віртуального (захищеного)  режиму або для виконання програм складених для МП-86/88.Реальний режим встановлюється автоматично при подачі живлення або при перезапуску. В реальному режимі МП-386 працює як дуже швидкий процесор МП-86 (в 6 - 10 разів швидше), але, за бажанням користувача, з розширенням ША та ШД до 32 розрядів. Система команд, порядок адресації та здійснення переривань тут майже такі як і у МП-86.

З загального списку 90 базових команд  МП-386   31 команда запозичена від МП-80, 42 - від МП-86, 6 - від МП-286 і лише 10 команд є цілком специфічними для МП-386. Тому мова Асемблера  МП-386 ненабагато чим відрізняється від мови для МП-86.  

Для переведення процесора у віртуальний режим слід встановити одиницю в біт РЕ - молодший біт регістра керування CR0. Це можна здійснити такою програмою: MOV AX,CR0;  OR AX,1;  MOV CR0,AX. Тут введення одиниці у наймолодший біт здійснюється через регістр АХ, бо безпосередньо звертатися до регістру CR0 не можна. Повернутись у реальний режим можна встановивши аналогічним чином РЕ = 0. Усі можливості МП-386 (мультипрограмність, віртуальна память, захист, пріоритети) зповна відкриваються лише в захищеному режимі.

У порівнянні з МП-286 у МП-386 існують істотні відміни в організації віртуальної памяті. При збереженні ідеї сегментації в МП-386  у широких межах можна варіюватися розмір сегмента: від одного байта до 232 = 4 Гбайт. Таких сегментів в полі віртуальних адрес може бути до 214 = 16384 1. З цими сегментами можна працювати так само, як і в МП-286, перетворюючи логічну адресу у фізичну за тією ж схемою через дескриптори.

Але у тих випадках коли розмір сегмента надто великий і незручний для роботи, у сегменті або поза ним можна створювати дрібніші одиниці сегментації - сторінки, які мають обєм у 212 = 4096 бітів, тобто 4 Кбайт. Приблизно стільки ж знаків можна розташувати на екрані монітора. В сегменті може бути до 220 таких сторінок.

При сторінковій адресації перетворення логічної адрес на фізичну здійснюється у два етапи: сперша відбувається трансляція сегмента. Логічна адреса, що складається з селектора сегмента і  відносної (ефективної) адреси, перетворюється у так звану лінійну адресу. Далі робиться трансляція сторінок, при якій лінійна адреса перетворюється у фізичну. Цим двом етапами перетворення  відповідають два блоки у пристрої формування адрес: сегментний транслятор та сторінковий транслятор (рис.19.2).

Конкретно це відбувається так: логічна адреса складається з 14 -розрядного селектора (13 бітів індексу + один біт що визначає вибір між глобальною та локальною таблицею дескрипторів), який завантажується в один із шести сегментних регістрів, та 32-розрядної ефективної адреси (зміщення у сегменті). Таким чином, обєм віртуальної памяті дійсно може складати 214+32 = 64 Тбайтів. Такий  гігантський обєм  віртуальної памяті не відповідає можливостям сучасних пристроїв  памяті, ані електронних, ані магнітних і розрахований, мабуть, на майбутні системи памяті надвеликої ємності, як зараз знаходяться у стані розробки.

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

          В останньому випадку одержана 32-розрядна сума і є  лінійною адресою2.Подальша іерархія пошуку містить такі етапи:

пошук у каталозі (показнику) таблиць;

пошук сторінки у таблиці сторінок;

знаходження фізичної адреси у сторінці.

32-розрядна лінійна адреса містить такі поля:

індекс 1 - зміщення у каталозі таблиць (10 бітів);

індекс 2 - зміщення у таблиці сторінок (10 бітів);

зміщення у сторінці (12 бітів).

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

Якщо сторінка з підрахованою таким чином адресою відсутня у фізичній памяті (ОЗП), то виникає переривання “немає сторінки” і операційна система завантажує з диска 4 Кбайт інформації, яка відповідає адресі потрібної сторінки. Разом з тим записується адреса новоствореної сторінки в таблиці сторінок.

Інформація про 32 тільки-но введених сторінок зберігається у спеціальному кеші сторінкових дескрипторів, що дозволяє адресуватися до 128 Кбайтів  (32х4 Кбайт)  памяті без звернення до каталогу таблиць. Досвід показує що лише при кількох відсотках звернень до памяті доводиться перезавантажувати кеш дескрипторів сторінок. Це є, мабуть, результатом дії локальності програми.

Отже, в МП-386 можливі чотири різновиди організації памяті:

-безсторінкова несегментована память на 4 Гбайти (так звана “плоска” память, подібна до тої, яка є у МП-80);

-сторінкова несегментована, ємністю у 4 Гбайти зі сторінками по 4 Кбайт;

сегментована безсторінкова память (як в МП-286) ємністю у 64 Тбайт з сегментами до 4 Гбайт;

-сторінкова сегментована віртуальна память ємністю у 64 Тбайт з сегментами до 4 Гбайт і сторінками по 4 Кбайт.

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

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

Слово “одночасно” є тут не досить точним, тому що в дійсності в певний момент часу процесор працює тільки з одною задачею. Інші знаходяться на зберіганні: команди і дані у відповідних сегментах памяті, а відомості про стан процесора (тобто вміст сегментних і робочих регістрів) - у сегменті стану відповідної задачі (сегменті TSS).

Супервізор здійснює перемикання від одної задачі до іншої так швидко, що користувач і не помічає цих перемикань і вважає що центральний процесор працює разом з усіма задачами одночасно. В розпорядженні окремої задачі знаходиться так званий віртуальний (уявний) процесор, котрому реальний процесор надається супервізором на короткі проміжки часу. Перемикання задач відбувається тоді, коли команди  JMP або  CALL звертаються до сегмента TSS .

Особливим випадком віртуального процесора є режим V8086 - режим віртуального  процесора 8086, коли  одна задача (або декілька задач)  у мультипрограмному режимі виконуються начебто на процесорі МП-86.  На практиці така ситуація зустрічається досить часто, бо програмного забезпечення для процесорів 8086 та 8088 було напрацьовано дуже багато і втрачати його шкода. Звичайно, подібні задачі можуть виконуватися, як вказувалось вище, просто у реальному режимі. Але виконання їх на віртуальному процесорі V86 має певні переваги:

по-перше, ПЕОМ може виконувати одночасно декілька таких задач;

по-друге, хоча задача виконується начебто у середовищі 8086

Але при цьому стають доступними усі ресурси захищеного режиму: віртуальна адресація, сторінкова сегментація і методи захисту. При цьому програма залишається такою ж як  і для МП-86. Можна, звичайно, підкорегувати її, пристосувавши до особливостей архітектури МП-386 (наприклад, використовувати 32-розрядні регістри, додаткові сегментні регістри FS GS, тощо). Але тоді це вже не буде програма для МП-86.

Для встановлення режиму  віртуального процесора V8086 в регістріі ознак є спеціальний сімнадцятий біт  VM, котрий для переходу у режим V8086 треба  встановити програмою у одиницю. Встановлення VM = 0 виводить процесор  з режиму V8086.

Наприкінець слід відмітити що до процесора 80386 може бути доданий математичний співпроцесор 80287 або спеціально розроблений для МП-386 співпроцесор 80387. Підключення такого співпроцесора значно підвищує продуктивність системи і прирівнює її за продуктивністю і швидкодією до середніх ЕОМ серії ЕС.

Мікропроцесор 80486

Мікропроцесор 80486 (і486) був розроблений фірмою Intel в 1989р. Масовий випуск ПЕОМ на базі цього процесора розпочався в 1990-91рр. і досяг свого максимума у 1995р. Цей процесор вироблявся y декількох різновидах (486DX,486DX2,486SX) що відрізняються головним чином за тактовою частотою. Ось пашпортні дані про і486:

розрядність шини адреси - 32 розряди, що дозволяє адресуватися до   4 Гбайт фізичної памяті і до 64 Тбайт  віртуальної памяті (у цьому він не відрізняється від МП-386);

шина даних на 32 розряди;

тактова частота різних версій від 25 до 75 МГц;

продуктивність  10 - 20  MIPS ;

кількість транзисторів на кристалі 1.2 млн. шт.;

напруга живлення +5В;

розсіювана потужність 2.5 - 4.0 Вт (зростає зі збільшенням тактової частоти; процесор вимагає примусового повітряного охолодження);

корпус квадратний, керамічний з 168 виводами.

 Архітектура і486 мало чим відрізняється від архітектури МП-386. При тій же розрядності шин процесор може працювати як у реальному, так і у віртуальному режимах. В останньому випадку використовується сегментна або сторінкова адресація, яка підтримується такими ж блоками, як і в МП-386.

Основні відміни і486 від МП-386:

у процесор і486 вбудовано співпроцесор для математичних операцій як з цілими числами, так і з плаваючою точкою3;

є внутрішня (вбудована на кристалі  процесора) кеш-память І рівня на 8 Кбайт;

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

Все це дозволяє (разом з підвищенням тактової частоти) збільшити продуктивність процесора і486  до 20MIPS , тобто у 2 - 4 рази порівняно з МП-386. Наявність внутрішнього кеша дає можливість процесорові працювати в значній мірі автономно від основної памяті. Зокрема це дає змогу деяким версіям (і486DX2) працювати з частотою вдвічі більшою, аніж зовнішня частина його системи.

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

1 Тобто загальна кількість адрес може сягати  до 246 = 64 Тбайт.

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

3 У процесора і486SX блока внутрішнього співпроцесора немає. Для цієї мети може використовуватися зовнішній співпроцесор і487SX.


 

А также другие работы, которые могут Вас заинтересовать

69720. Неспіймані виключення 26.5 KB
  Не дивлячись на найвідчайдушніші спроби обробити виключення, бувають випадки, коли необхідно припинити виконання програми. Відновлення після таких виключень (а також фатальних) неможливе. C++ дозволяє використовувати функції terminate...
69721. Обмеження виняткових ситуацій 29.5 KB
  Обмеження виняткових ситуацій Програміст може обмежити типи виняткових ситуацій які може генерувати функція в інших місцях програми. Фактично можна взагалі заборонити функції генерувати які б то не було виняткові ситуації.
69722. Двійковій режим потоку введення-виведення 22.5 KB
  Метод записує count символів символьного масиву str в потік даних. Ніякі символи-роздільники не впливають на вивід. Він також повертає посилання на потік, тому після операції можна перевірити стан потоку.
69723. Захищене наслідування 23.5 KB
  До базового класу можна застосовувати механізм захищеного наслідування. При цьому всі відкриті і захищені члени базового класу стають захищеними членами похідного класу. Розглянемо приклад.
69724. Множинне наслідування 22 KB
  Похідний клас може одночасно успадковувати властивості декілька базових Наприклад, в програмі, приведеній нижче, клас derived успадковує властивості класів base1 і base2.
69725. Віртуальні базові класи 42 KB
  Як вказано в коментарях, класи derivedl і derived2 є спадкоємцями класу base. Проте клас deribed3 є похідним від обох класів derived2 і derived1. (Таке наслідуванно називається діамантовим). Отже, в об’єкті класу derived3 містяться дві копії об’єкту класу base.
69726. Віртуальні функції 33 KB
  Кожне перевизначення віртуальної функції в похідному класі реалізує операції властиві лише даному класу. Покажчики на об’єкти базового класу можна використовувати для посилання на об’єкти похідних класів.
69727. Чисто віртуальні функції 21 KB
  Проте у багатьох випадках неможливо створити розумну версію віртуальної функції в базовому класі. Для цих ситуацій в мові С передбачені чисто віртуальні функції. Для оголошення чисто віртуальної функції використовується наступна синтаксична конструкція.