Формати команд мікропроцессораINTEL.
Регістри загального призначення (Рони) розбиті на дві групи:
Перший байт команди містить Cop - код операції і два однобітових поля: d- біт напрямку передачі і w- довжина операнда.
При d = 1, то здійснюється передача операнда або результату операції в регістр, номер якого задається полем reg другого байта команди.
Поле W ідентифікує тип (розрядність) операндів:
Якщо w = 1, то команда оперує з 2-хбайтним словом.
w = 0, команда оперує з 1 байтом.
2-ий байт - постбайт, визначає беруть участь в операції регістри або регістр і осередок пам'яті. постбайт складається з 3-х полів:
md - режим, який показує як інтерпретується поле r / m для знаходження першого операнда.
Reg - регістр, використовується в 2-х операндних командах.
Поле reg визначає операнд, який обов'язково знаходиться в регістрі мікропроцесора і вважається другим операндом. Поле r / m визначає операнд, який може знаходиться в регістрі або пам'яті і умовно вважається першим. Поле reg використовується тільки для вказівки регістра в двохоперандних командах. Якщо в команді один операнд, то він ідентифікується полем R / m, а поле reg відсутня. Замість поля reg в цьому випадку використовується розширення коду операції.
Поле md (модальність) показує, як інтерпретується поле R / m для знаходження першого операнда:
Якщо md = 11, то операнд знаходиться в регістрі, номер якого заданий полем R / m. При інших значеннях md операнд знаходиться в пам'яті.
Disp - зміщення в команді, що інтерпретується як ціле число зі знаком.
md = 00 зміщення disp відсутня.
md = 01 disp = disp L, команда містить 8 біт. зміщення D8.
md = 10 disp = dispH dispL, команда містить 16 біт, зміщення D16.
Так як 2-ий операнд розміщується в команді, то поле reg відсутня, але замість нього використовується розширення коду операції cop. Відсутня біт напрямку d, так як результат операції можна помістити тільки на місце першого операнда. Місце цього біта d займає біт S, який є ознакою використання одного байта для завдання безпосереднього операнда при роботі зі словами.
Поля S і W інтерпретуються наступним чином:
SW = Х0, один байт даних Data L
SW = 01, один байт даних Data H Data L
SW = 11, один байт даних, який автоматично розширюється зі знаком до 16 біт.
Сегментна організація пам'яті.
Сторінкова організація пам'яті.
2) забезпечує захист ОС та програмне забезпечення користувача;
Сторінкова трансляція включається в захищений режим установкою в одиницю 31-го розряду нульового регістру управління CRQ і вимикається скиданням цього розряду в нуль.
При сторінкової організації сегмент розбивається на окремі розділи, число яких може досягти до 2 10.
Каталог займає одну сторінку пам'яті, де для кожного розділу містяться 32-розрядні покажчики входу в таблицю сторінок цього розділу. Кожна з таблиць сторінок також займає одну сторінку пам'яті, де для кожної сторінки дається 32-хразрядний покажчик входу в цю сторінку.
Покажчики входу в розділ і в сторінку мають однаковий формат.
Р - біт присутності. Якщо Р = 1, то дозволяється використання таблиці сторінок, якщо Р = 0, то таке використання забороняється. При Р = 0 спроба звернення до відповідного розділу або сторінці викликає переривання через відсутність потрібної сторінки в оперативній пам'яті. Після завантаження потрібної сторінки в пам'ять, біт Р встановлюється в «1» і в цьому випадку звернення до даної сторінки стає можливою. Це потрібно для того, щоб ОС знала, де знаходиться сторінка.
R / W - біт читання / запису.
U / S - біт користувач / супервізор.
Ці два біта визначають право доступу до відповідній сторінці або розділу для програм користувача. Програма користувача зазвичай має найнижчий рівень привілеїв рівний 3. Якщо здійснюється запит з рівнем привілеїв рівним 3, то при значенні U / S = 0 програмою користувача забороняється доступ до розділу або сторінці.
При U / S = 1 звернення дозволяється, але при цьому враховується значення біта R / W.
Якщо R / W = 0, то програмі користувача дозволяється тільки читання розділу або сторінки.
Якщо R / W = 1, то дозволяється як читання, так і запис. Якщо здійснюються запити з великим рівнем привілеїв (0, 1 і 2), то допускається запис і читання розділів і сторінок при будь-яких значеннях '1' і '2' розрядів.
Такі рівні привілеїв має ОС.
А - біт доступу. Цей біт автоматично встановлюється в «1» мікропроцесором при зверненні до цього розділу або сторінці для запису або читання.
D - біт «сміття». У покажчику кадру сторінки цей біт встановлюють в «1» при запису на дану сторінку. Для покажчиків таблиць сторінок значення біта D є невизначеною.
Організація віртуальної пам'яті.
Механізм сторінкової організації пам'яті може бути легко використаний для організації віртуальної пам'яті.
Сторінкову віртуальну організацію пам'яті підтримує біт Р - біт присутності. У системах з віртуальною пам'яттю біт Р повинен точно відображати місце знаходження віртуальної сторінки, яка може перебувати в ОЗУ, або на зовнішньому диску. Якщо сторінка знаходиться в ОЗУ, то біт Р встановлюється в одиничний стан, а якщо на зовнішньому диску, то біт Р = 0.
При необхідності, коли оперативна пам'ять переповнюється повністю, операційна система видаляє на зовнішній диск ті розділи і сторінки, до яких довгий час не було звернень, звільняючи тим самим місце для нововведених сторінок в оперативну пам'ять. Таким чином, відбувається безперервне оновлення вмісту ОЗУ. ОЗУ містить тільки ті програми і дані, які потрібні в даний момент часу. Ті ж програмні засоби, до яких довгий час не було звернення, поступово виводяться на зовнішній диск. Ось так працює віртуальна пам'ять.
1 сегмент дорівнює 232 = 4 Гб
Засоби захисту інформації
в мікропроцесорах фірмиINTEL.