22989

Віртуальна пам’ять. Мікропроцесор 80286

Лекция

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

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

Украинкский

2013-08-04

4.24 MB

0 чел.

Лекція №18

Віртуальна память.

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

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

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

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

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

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

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

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

Зясувавши необхідність і ідею здійснення віртуальної памяті, розглянемо тепер деякі аспекти її реалізації. Схема організації віртуальної памяті зображена на рис.18.1.

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

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

При підготовці задачі до розвязання операційна система складає список  (таблицю) адрес  дескрипторів  тих сегментів, котрі будуть використані і задіяні при розв’язанні задачі. Складання таких таблиць відбувається на етапі компонування програми.

Ці таблиці бувають двох типів: глобальна таблиця дескрипторів (GDT) і локальні таблиці дескрипторів (LDT).  Таблиця GDT - одна в системі. До неї записуються дескриптори сегментів, які можуть бути задіяні при виконанні багатьох задач. Звичайно в GDT знаходиться перелік сегментів операційної системи, котрі можуть знадобиться для даної задачі.

Таблиць LDT може бути багато. Ці таблиці містять перелік сегментів програм, що працюють під керівництвом операційної системи, тобто прикладних програм окремих задач. Таблиці дескрипторів в МП-286 можуть мати обєм від 8 байтів до 64 кілобайтів, тобто можуть містити від одного до 8192 дескрипторів. Кожній таблиці відповідає свій базовий регістр GDTR та  LDTR  в котрих записані базові адреси відповідних таблиць.

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

В селекторі міститься 13-бітовий індекс, який являє собою зміщення для шуканого дескриптора у відповідній таблиці дескрипторів. Цей індекс підсумовується з базовою адресою таблиці (яка міситься в регістрах GDTR або LDTR) і таким чином одержується адреса дескриптора. За цією адресою дескриптор відшукується і копіюється у кеш-пам’ять дескрипторів, де одночасно можуть бути розміщені чотири таких дескриптори.

Основну частину 64-бітового (тобто 8-байтового) дескриптора складає 24-розрядна базова адреса шуканого сегмента. По ній визначається і обирається сегмент. А ефективна адреса дає зміщення шуканого байта у цьому сегменті.

Таким  чином знайомий нам принцип складання адреси як “база + зміщення” використовується тут двічі. Спочатку на такий спосіб відшукується дескриптор: його адреса формується шляхом підсумовування бази таблиці дескрипторів і зміщення в ній, яке знаходиться в селекторі. Знайдений дескриптор містить базову адресу бажаного сегмента, а зміщення (тобто ефективна адреса потрібної комірки пам’яті) міститься у логічній адресі.

В залежності від важливості для функціонування машини усі сегменти, що знаходяться у пам’яті, мають різний ступінь захищеності і права доступу до них. Всього є 4 ступені захищеності. Найвища захищеність (0) надана сегментам що складають ядро операційної системи, захищеність першого порядку (1) надається решті операційної системи; найнижчі рівні (2 та 3) - прикладним програмам. Рівень захищеності даного сегмента зафіксований в спеціальних бітах його дескриптора.

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

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

Всі ці міроприємства надійно захищають найвідповідальніші сегменти пам’яті, а також сегменти прикладних програм.

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

процесор перевіряє таблицю дескрипторів і виявляє, що такого сегмента в операційній пам’яті немає;

відсутність сегмента викликає переривання;

виконується запис  з диска потрібного сегмента в режимі ПДП;

операційна система корегує таблицю дескрипторів;

керування передається перерваній програмі.

При переповнення операційної пам’яті операційна система повертає сегменти, що давно не використовувались, на диск.

Для  кращого розуміння того, що являє собою дескриптор,  можна запропонувати таку аналогію:

“Пошук книги в бібліотеці і пошук комірки пам’яті в ЕОМ у захищеному режимі”

Пошук книги

Пошук комірки памяті

Потрібна шафа у картотеці

Регістр базової адреси таблиці дескрипторів

Номер шухлядки на потрібну тему

Селектор

Картка в шухлядці

Дескриптор сегмента

Книга

Сегмент

Номер потрібної сторінки

Зміщення в сегменті (ефективна адреса)

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

Випуск мікропроцесорів типу 80286 розпочався у 1983р. і досяг свого максимума у 1989р. Цей процесор є подальшім вдосконаленням МП-86, але на відміну від нього містить деякі принципові новації і характеризується такими параметрами:

розрядність шини даних 16 (але допускає роботу з однобайтовими операндами);

розрядність шини адреси 24, отже процесор може адресуватися до 2 24 = 16 Мбайт фізичних адрес і до 2 30 = 1 Гбайт  у режимі віртуальної адресації;

тактова частота для його різновидів складає від 12 до 16 МГц. Це забезпечує швидкість обміну з памяттю більш від 12 Мбайт/сек і продуктивність 1.2 MIPS ( мільйонів команд за секунду). Зауважимо, що мікропроцесор МП-86 мав продуктивність лише 0.33 MIPS.

Процесор 80286 має чотирьохрівневу систему захисту програм і даних. Його система команд дещо розширена порівняно з МП-86 та МП-88, отже МП-286 може вільно виконувати програми складені для його “молодших братів”, але не навпаки.

Процесор МП-286 містить 130 000 транзисторів, він розташований у керамічному корпусі з 68 виводами і живиться напругою +5В. На основі цього процесора виготовлялась ПЕОМ типу PC/AT, яка набула у свій час великого поширення.

Структурна схема мікропроцесора 80286 зображена на рис. 18.2 і в основних рисах подібна до схеми МП-86. Вона також складається з шинного інтерфейсу, оперативного пристрою та керуючого пристрою. Від шинного інтерфейсу МП-86 пристрій спряжіння з системною шиною у МП-286 відрізняється розрядністю шини адрес та тим, що ША і ШД в нього не мультиплексовані. Це дозволяє робити конвеєрізацію адреси, дещо виграючи завдяки цьому у швидкодії. Від шинного інтерфейсу крім ША та ШД відходять також виводи керуючих сигналів ,,, CLK, READY, RESET, та інші. Передбачені також виводи для спряжіння з математичним співпроцесором 80287. До складу шинного інтерфейсу входить також черга команд у 6 байтів. Після декодування одержані мікрокоманди не потрапляють безпосередньо на операційний блок процесора, а проходять через чергу мікрокоманд (3 регістри по 69 бітів). Черги команд і мікрокоманд дозволяють більш економно використовувати машинний час виконавчих блоків.

Операційний (виконавчий) пристрій, у принципі, майже нічим не відрізняється від відповідного пристрою МП-86 і містить вже добре знайомі нам 16/8-розрядні робочі регістри AX,BX,CX,DX, шістнадятирозрядні базові і індексні регістри і регістр ознак. Невеликою відміною є те, що АЛП доповнено пристроями множення і ділення, які дозволяють робити ці операції апаратним шляхом.

Основна специфіка МП-286 зконцентрована у пристрої формування адрес. Тут, окрім знайомих нам чотирьох сегментних регістрів  CS, DS, SS та ES, є ще ціла низка регістрів і суматорів для формування фізичної адреси при роботі з віртуальною пам’яттю. Це регістри базової адреси таблиць дескрипторів,  регістри селектора і ефективної адреси, суматори фізичної адреси і адреси дескрипторів і кеш дескрипторів. У віртуальному режимі регістрами селектора служать сегментні регістри CS, DS, SS та ES. Крім всього цього в пристрої формування адрес є ще компаратор, який порівнює біти права на доступ з відповідними бітами захищеності сегмента.

Мікропроцесор 80286 може працювати у двох режимах: реальному і віртуальному. В реальному режимі він функціонує практично так само як і МП-86, тільки трохи швидше. Система команд, способи адресації і все інше цілком тотожні з МП-86. В реальний режим МП-286 входить одразу після включення  або після перезапуску.

З реального режиму у віртуальний мікропроцесор переводиться командою LMSM.  Ця команда завантажує слово стану, котре встановлює біт РЕ = 1 в керуючому регістрі СR0. Після того, як МП-286 перейшов у віртуальний режим, повернути його у реальний режим можна апаратним шляхом встановивши РЕ = 0 або шляхом перезапуску. Це можна зробити так:

  встановлення

  у віртуальний

       режим

MOV AX,CR0

OR AX,1

MOV CR0,AX

  виходження  з

віртуального               режиму

MOV AX,CR0

AND AX,0FFFE

MOV CR0,AX

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

Процесор МП-286 може працювати сумісно зі співпроцесором  80287. Продуктивність такого тандему при виконанні  математичних  програм істотно зростає.

У віртуальному режимі звичайна дискова операційна система MS-DOS вже не працює. Доводиться користуватися більш складними операційними системами, наприклад, UNIX або XENIX 286 . При ініціалізації роботи ЕОМ виникає запит від машини - в якому режимі бажає працювати користувач - в реальному або віртуальному. У відповідності з цим операційна система встановлює режим роботи машини.

 


 

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

22492. Визуальная среда обучения программированию на языке Haskell 450 KB
  Язык программирования Haskell – это «ленивый» функциональный язык программирования с полиморфизмом типов. Основное понятие в нем – это функции. Но функции есть в любом языке программирования! В языках Pascal, Java...
22493. Разработка средств поддержки процесса проектирования интерфейсов 230 KB
  Однако качество цифровых продуктов с точки зрения взаимодействия с пользователем оставляло желать лучшего. Причина кроется в том, что определением конечной формы и поведения программ занимались программисты, ориентированные на качественное и быстрое выполнение технической стороны.
22494. SELECT в SQL Oracle. Основные возможности 335 KB
  1] Основные фразы запроса: SELECT и FROM [3.1] Фраза SELECT [3. В противном случае вы должны иметь привилегию SELECT по отношению к таблице.
22495. ОБРАБОТКА, ХРАНЕНИЕ И ВИЗУАЛИЗАЦИЯ ДАННЫХ ДЛЯ ЗАДАЧ КАРДИОМОНИТОРИНГА 1.92 MB
  В данной работе изучается задача кардиомониторинга; рассматриваются основные понятия, связанные с построением электрокардиограммы; вводится понятие кардиорегистратора, описываются виды регистрации показаний. Ставится задача о разработке программного обеспечения, которое будет принимать поток данных, разбивать его на отведения
22496. ИСПОЛЬЗОВАНИЕ МНОГОПОТОЧНОСТИ ДЛЯ СОЗДАНИЯ ГРАФИЧЕСКОГО JAVA - ПЛАТФОРМЕРА 1.36 MB
  Android - это открытая платформа, основанная на ядре Linux. Установлена она на тысячах устройствах широкого круга производителей. Android предоставляет приложения для всех видов оборудования, которые только можно представить в виде современных мобильных устройств
22497. Разработка компилятора расширяемого языка системного программирования 194 KB
  В ходе работы были описаны лексика и синтаксис языка, а также были приведены ключевые алгоритмы этапы генерации кода и рассмотрен пример практического использования. Результатом стала реализация компилятора на C# и набора библиотек для нового языка, описывающих конструкции...
22498. Обязательное подтверждение соответствия в Таможенном союзе. Объекты, формы, схемы. Перечни продукции, подлежащей декларированию и обязательной сертификации 18.75 KB
  Суть принятых решений состоит в том, чтобы максимально минимизировать риски негативного воздействия на граждан и в целом на национальную безопасность государств - членов Таможенного союза при использовании потреблении) товаров, производимых за его пределами.
22499. Использование дидактических игр на уроках у учащихся младших классов 134 KB
  Значение использования игр в младшем школьном возрасте велико и потому, что в процессе игровой деятельности наряду с умственным развитием осуществляется физическое, эстетическое, нравственное воспитание. Выполняя правила игры, ребята приучаются сдерживаться, контролировать свое поведение
22500. Особливості особистості та сімейної соціалізації адоптованих, дезадоптованих студентів 265.5 KB
  Определить степень адаптированности (дезадаптированности) студентов-первокурсников. Выявить основные стили родительского семейного воспитания у первокурсников с низким и высоким уровнем адаптации. Выявить различия в уровнях личностной и ситуативной тревожности у адаптивных (дезадаптивных) студентов.