Організація оперативної пам’яті. Сегментована модель оперативної пам’яті. Формування адреси в реальному режимі 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Організація оперативної пам’яті. Сегментована модель оперативної пам’яті. Формування адреси в реальному режимі



На найнижчому рівні пам’ять комп’ютера можна розглядати як набір бітів (двійкових розрядів), тобто один біт може набувати значень 0 або 1. Оскільки мікропроцесору незручно працювати на рівні бітів, тому реально оперативна пам’ять організована як набір комірок – байтів. Один байт складається з восьми бітів. Кожному байтові відповідає його унікальна адреса (його номер), яка називається фізичною адресою. Діапазон значень фізичних адрес залежить від розрядності шини адреси мікропроцесора. Для i486 і Pentium цей діапазон від 0 до (4 Гбайтів). Для мікропроцесорів сім’ї P6 (Pentium Pro/II/III) цей діапазон ширший – від 0 до (64 Гбайтів). Механізм керування пам’яттю повністю апаратний, тобто програма не може сама сформувати фізичну адресу пам’яті на адресній шині. Цей механізм ми розглянемо нижче.

Мікропроцесор підтримує дві моделі використання оперативної пам’яті:

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

сторінкова модель. Оперативна пам’ять розглядається як сукупність блоків фіксованого розміру (4 Кбайтів). Застосування цієї моделі пов’язано з організацією віртуальної пам’яті, що дозволяє операційній системі використовувати для роботи програми простір пам’яті більший, ніж оперативна пам’ять. Для мікропроцесорів i486 і Pentium розмір віртуальної пам’яті може досягати 4 Тбайтів.

Особливості використання і реалізації цих моделей пам’яті залежать від режиму роботи мікропроцесора:

реальний режим. Позначатимемо його R-режим. Це режим, в якому працював процесор 8086. Наявність його в i486 і Pentium обумовлено тим, що фірма Intel намагається забезпечити в нових моделях процесорів функціонування програм, розроблених для ранніх моделей мікропроцесорів;

захищений режим. Позначатимемо його P-режим. Він дозволяє максимально реалізувати всі нові архітектурні можливості мікропроцесора i486. Програми, розроблені для процесора 8086, не можуть виконуватися в цьому режимі. Одна з причин цього пов’язана саме з особливостями формування фізичної адреси в захищеному режимі;

режим віртуального 8086. Перехід в цей режим можливий, якщо процесор уже працює в P-режимі. Основна особливість цього режиму – можливість одночасного виконання декількох програм, розроблених для 8086 процесора;

режим системного керування – новий режим роботи мікропроцесора, який вперше появився в мікропроцесорі Pentium. Дозволяє операційній системі використати механізм для виконання машинно-залежних функцій. Наприклад, переведення комп’ютера в режим пониженого енергопостачання, виконання дій, пов’язаних з захистом системи.

Розглянемо тепер поняття сегментованої моделі оперативної пам’яті. Сегментація – механізм адресації, який забезпечує існування декількох незалежних адресних просторів як в рамках однієї задачі, так і в системі загалом для захисту задач від взаємного впливу. Основою сегментації є поняття сегмента – незалежного, підтримуваного на апаратному рівні блоку пам’яті. Кожна програма може складатися в загальному випадку з будь-якої кількості сегментів, але безпосередній доступ вона має тільки до трьох основних сегментів: коду, даних і стека, а також трьох додаткових сегментів даних. Програма не знає, за якими фізичними адресами будуть розташовані її сегменти. Це забезпечує операційна система. За початкові адреси сегментів відповідає вміст відповідних сегментних регістрів. У R-режимі ці адреси операційна система розміщує безпосередньо в сегментні регістри, а в P-режимі вони розміщуються в елементи так званої дескрипторної таблиці, а вміст сегментних регістрів трактується як індекс (селектор) відповідного дескриптора в десктрипторній таблиці. Всередині сегмента програма звертається до адрес відносно початку сегмента лінійно, тобто починаючи з нуля і закінчуючи адресою, яка дорівнює розмірові сегмента. Це зміщення називається ефективною адресою і її ми позначатимемо EA.

Розрізняють три основних моделі оперативної пам’яті:

1) сегментована модель пам’яті реального режиму;

2) сегментована модель пам’яті захищеного режиму;

3) суцільна модель пам’яті захищеного режиму.

Розглянемо формування фізичної адреси в реальному режимі. Фізична адреса подається на шину адреси мікропроцесора. Є ще одна назва цієї адреси: лінійна адреса, яка появилася у зв’язку з наявністю сторінкової моделі організації пам’яті. Ці назви ідентичні (синоніми) тільки коли вимкнено сторінкове перетворення адреси (в реальному режимі сторінкова адресація вимкнена).

В реальному режимі механізм адресації фізичної пам’яті має наступні характеристики:

– діапазон зміни фізичної адреси від 0 до 1 Мбайтів, оскільки шина адреси мала 20 ліній (20 бітів);

– максимальний розмір сегмента 64 Кбайтів, що пояснюється 16-бітовою архітектурою процесора (16-бітовий регістр може набувати максимального числового значення , що й визначає величину 64 Кбайтів);

– для звернення до конкретної фізичної адреси оперативної пам’яті потрібно визначити адресу початку сегмента (сегментна складова) і зміщення всередині сегмента. Ми знаємо, що вміст сегментного регістра – 16-бітове число і максимальне значення цього числа , тобто адреса початку сегмента може бути тільки в межах від 0 до 64 Кбайтів. В архітектурі процесора враховано цей факт і вважається, що сегментний регістр містить старші 16 розрядів фізичної адреси початку сегмента, а молодші чотири розряди одержуються за допомогою зсуву значення в сегментному регістрі на чотири розряди вліво. Операція зсуву відбувається апаратно і для програмного забезпечення абсолютно прозора і незалежна. Одержане 20-бітове значення виявляється потрібною фізичною адресою, яка є адресою початку сегмента в оперативній пам’яті. Друга складова – 16-бітове зміщення може знаходитися в команді або в загальному регістрі. В мікропроцесорі ці складові додаються і одержується фізична адреса розміром 20 бітів. Значення зміщення можна одержати мінімум з одного і максимум з трьох джерел: значення зміщення в самій команді і з вмісту одного базового регістра та одного індексного регістра.

Така організація пам’яті має певні недоліки:

– сегменти безконтрольно можуть розміщуватися в оперативній пам’яті з будь-якої адреси, кратної 16 (оскільки вміст сегментного регістра зсувається на 4 біти вліво). Тому програма може звертатися до будь-яких адрес і навіть реально відсутніх;

– максимальний розмір сегмента 64 Кбайтів, що часто не достатньо;

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

Ці недоліки відсутні в захищеному режимі.



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 377; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.175.59.242 (0.007 с.)