![](/user_photo/2706_HbeT2.jpg)
- •Тема 7. Архітектурні особливості мікропроцесорів Intel 80x86.
- •1. Реальний і захищений режими роботи процесора.
- •Мал. 3.1 Схема визначення фізичної адреси для процесора 8086.
- •2. Нові системні регістри мікропроцесорів і80x86.
- •Мал. 7.2 Основні системні регістри мікропроцесорів і80x86.
- •3. Підтримка сегментного способу організації віртуальної пам'яті.
- •Мал. 7.3 Дескриптор сегменту.
- •Мал. 7.4. Селектор сегменту.
- •Мал. 7.5 Сегмент стану задачі (tss).
- •Мал. 7.6 Процес отримання лінійної адреси команди.
- •4. Підтримка сторінкового способу організації віртуальної пам'яті.
- •Мал. 7.7 Дескриптор сторінки.
- •Мал. 7.8 Трансляція лінійної адреси в мікропроцесорах і80x86.
- •5. Режим віртуальних машин для виконання додатків реального режиму.
- •6. Захист адресного простору задач.
- •Рівні привілеїв для захисту адресного простору задач.
- •Якщо цільовий сегмент є сегментом стека, то правило перевірки має вид
- •7. Механізм шлюзів для передачі керування на сегменти коду з іншими рівнями привілеїв.
- •Мал. 7.9 Механізм шлюзів для переходу на другий рівень привілеїв.
- •Мал. 7.10 Перехід на сегмент більш привілейованого коду.
- •Мал. 7.11 Формат дескриптора шлюзу.
Мал. 7.6 Процес отримання лінійної адреси команди.
4. Підтримка сторінкового способу організації віртуальної пам'яті.
При створенні мікропроцесора i80386 розробники зштовхнулися з дуже серйозною проблемою в реалізації сторінкового механізму. Справа в тім, що мікропроцесор має широку шину адресу — 32 біта — і виникає питання про розбивку всієї адреси на поле сторінки і поле індексу. Якщо велику кількість бітів адреси відвести під індекс, то сторінки стануть дуже великими, що спричинить великі втрати і на фрагментацію, і на операції введення/виведення, зв'язані з заміщенням сторінок. Хоча кількість сторінок сталася б при цьому менше, і накладні витрати при їхній підтримці теж би зменшилися. Якщо ж розмір сторінки зменшити, то велике поле номера-сторінки привело б до появи величезної кількості можливих сторінок і необхідно було або вводити якісь механізми контролю за номером сторінки (для того, щоб він не виходив за розміри таблиці сторінок), або створювати ці таблиці максимально можливого розміру. Розробники пішли по шляху, при якому розмір сторінки все-таки невеликий (він обраний рівним 212 = 4096 = 4К), а поле номера сторінки завбільшки 20 бітів, у свою чергу, розбивається на два поля і здійснюється двохетапна (двохкрокова) сторінкова трансляція.
Для опису кожної сторінки створюється відповідний дескриптор. Довжина дескриптора обрана рівною 32 бітам: 20 бітів лінійної адреси визначають номер сторінки (власне кажучи — її адресу, оскільки додавання до нього (приписування як молодші розряди) 12 нулів приводить до визначення початкової адреси сторінки), а інші біти розбиті на наступні поля, що зображені на мал. 3.7. Як видно, три біти дескриптора зарезервовані для використання системними програмістами при розробці підсистеми організації віртуальної пам'яті. З цими бітами мікропроцесор сам не працює.
Мал. 7.7 Дескриптор сторінки.
Насамперед, мікропроцесор аналізує самий молодший біт дескриптора — біт присутності, тому що якщо поле present дорівнює нулю, те це означає відсутність даної сторінки в оперативній пам'яті, і така ситуація призводить до переривання в роботі процесора з передачею керування відповідній програмі, що повинна буде завантажити викликану сторінку. Біт dirty — «брудний» — призначений для оцінки, що дану сторінку модифікували і при заміщенні цього сторінкового кадру наступним її необхідно зберегти в зовнішній пам'яті. Біт звертання (access) свідчить про те, що до даної таблиці чи сторінки здійснювався доступ. Він використовується для визначення сторінок), що буде брати участь у заміщенні при використанні дисциплін LRU чи LFU. Нарешті, перший і другий біти використовуються для захисту пам'яті.
Старші 10 бітів лінійної адреси визначають номер таблиці сторінок (раgе table entry, РТЕ), з якої за допомогою других 10 бітів лінійної адреси вибирається відповідний дескриптор віртуальної сторінки. І вже з цього дескриптора вибирається номер фізичної сторінки, якщо дана віртуальна сторінка відображена зараз на оперативну пам'ять. Ця схема визначення фізичної адреси по лінійному зображена на мал. 3.8.
Чорна таблиця, що ми індексуємо першими (старшими) 10 бітами лінійної адреси, названа таблицею каталогів таблиць сторінок (раge directory entry PDE). Її адреса в оперативній пам'яті визначається старшими 20 бітами керуючого регістра CR3.