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

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

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

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

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

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

Вартою уваги особливістю МП-386 є, без сумнівів, його 32-розрядні робочі регістри (рис. 19.1). їх вісім (як і в МП-86 та МП-

можна апаратним шляхом, установивши РЕ = О або иерезапуску. Це можна зробити так:

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

  cs
ss
DS
ES
FS.
GS

Рис. 19.1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- знаходження фізичної адреси в сторінці. 32-розрядна лінійна адреса містить такі поля:

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

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

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

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

адреси.

Але у^ тих випадках, коли розмір сегмента надто великий і

Іезручнии для роботи, у сегменті або поза ним можна створювати

дрібніші одиниці сегментації - сторінки, які мають об'єм у 212 = 4096

бтв, тобто 4 Кбайти. Приблизно стільки ж знаків можна розташувати

на екран, моштора. В сегменті може бути до 220 таких сторінок

Перший індекс підсумовується із вмістом регістра базової адреси каталогу таблиць, що знаходиться в регістрі 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. Підключення такого

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

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

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

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

- ШД на 32 розряди;

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

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

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

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

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

- корпус квадратний, керамічний із 168 виводами. Архітектура i486 мало чим відрізняється від архітектури МП-386.

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

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

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: