Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сегментована модель пам'яті

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

При розгляді сегментних регістрів ми відзначали, що для процесорів Intel, починаючи з і8086, прийнятий особливий підхід до управління пам'яттю. Кожна програма в загальному випадку може складатися з будь-якої кількості сегментів, але безпосередній доступ вона має тільки до трьох основних сегментів (коду, даних і стека), а також до додаткових сегментів даних числом від одного трьох. Сегмент – це спеціальні області в програмі для зберігання коду (CS), даних (DS) і стека (SS). Для звернення до сегменту слід змінити значення у відповідному сегментному регістрі. Програма ніколи не знає, за якою фізичною адресою будутьрозміщені її сегменти. Цим займається операційна система. Операційна система розміщує сегменти програми в оперативній пам'яті за визначеними фізичними адресами, після чого розміщує значення цих адрес в певні місця. Куди саме, залежить від режиму роботи процесора.

У 32-розрядних регістрах процесорів Intel, наприклад, Pentium, адресна шина 32-розрядна, що відповідає адресному простору 232 = 4 Гбайт, однак сегментна адресація пам’яті не дозволяє вийти за межі 1 Мбайта. Для подолання цього обмеження у 32-розрядних процесорах використовують два режими роботи: реальний та захищений. У реальному режимі процесор функціонує так, як процесор І8086 з підвищеною швидкодією та звертається тільки до 1 Мбайту адресного простору, до іншого простору він звертатися не може. В реальному режимі фізичні адреси поміщаються безпосередньо у відповідні сегментні регістри.

У захищеному режимі також використовуються сегменти та зсув в сегментах, однак початкові адреси сегментів не обчислюються шляхом множення на 16 вмісту сегментних регістрів, а вибираються з таблиць сегментних дескрипторів, які індексуються за допомогою тих же регістрів. Кожний сегментний дескриптор займає 8 байт, з яких 4 байти (32 біти) відводяться піпд сегментну адресу. Тим самим забезпечується повне використання 32-розрядного адресного простору. У захищеному режимі процесор дозволяє адресувати 4 Гбайти фізичної пам’ті. Усередині сегменту програма звертається до адрес відносно початку сегменту лінійно, тобто починаючи з 0 і закінчуючи адресою, що дорівнюється розміру сегменту. Ця відносна адресу, або зсув, який процесор використовує для доступу до даних усередині сегменту, називається ефективною.

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

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

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

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

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

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

1. абсолютна адреса – це 20 розрядне двійкове число, що вказує на певну комірку пам’яті;

2. адреса в системі сегмент:зсув, яка складається з початкової адреси сегмента і значення зсуву.

При сегментованій організації пам’яті процесорів і8086/і8088/і286 в операційній системі MS DOS структура сегментованої організації наступна:

Сегментний регістр Вміст сегмента Адреса (Нех) Пояснення
      Початок оперативної пам’яті (ОЗП)
CS Команда 3DA00 Початок сегмента коду
  Команда CS+IP Виконавча (фізична) адреса команди (исполнительный адрес)
  Команда CS+FFFF Кінець сегмента коду (maximum)
  Дане SS-FFFF Кінець сегмента стека (maximum)
  Дане SS-SP Вершина стека (виконавча адреса)
SS Дане   Початок сегмента стека
DS Дане   Початок сегмента даних
А DB? DS+A Виконавча (фізична) адреса для змінної А
  Дане DS+FFFF Кінець сегмента даних (maximum)
ES Дане   Початок ДОДАТКОВОГО сегмента даних
B DW? ES+B Виконавча (фізична) адреса для змінної B
  Дане ES+FFFF Кінець ДОДАТКОВОГО сегмента даних (maximum)
    FFFF Кінець ОЗП

 

Обчислення фізичної адреси ОЗП при роботі зі стеком аналогічно обчисленню фізичної адреси команди, тільки треба враховувати той факт, що вершина стека зростає в бік менших адрес. Це означає, що із зсунутого на відповідну кількість розрядів регістра SS треба відняти вміст регістра SP.

Наприклад, вміст регістру SS – 7890h, а SP – 11FAh. Тоді виконуємо зсув вліво на розряд: 78900h – 11FAh=77706h.

При роботі з даними у сегменті даних на етапі компіляції вже відомо значення зсуву для усіх даних, які адресуюються. Отримання фізичної адреси для даних, такає як і для команд: значення сегмента DS + зсув.

 

Загальна схема розподілу пам’яті в MS DOS така:

Адреса (Нех) Назва та опис
Стандартна пам’ять (640 К)
00000-003FF Таблиця переривань (256 чотирьох байтні адреси)
00400-004FF Область даних ROM BIOS (BIOS DATA Area)
00500-00ххх Область DOS (DOS Area)
00ххх-9FFFF Пам’ять для користувацьких програм (User RAM)<=638 K
9FC00-9FFFF Розширення BIOS DATAArea для PS/2 миші
Верхня пам’ять – UMA (384 K)
А0000-BFFFF Відеопам’ять (Video RAM)
C0000-DFFFF Блоки зовнішнього коду ROM (по 2 К)
E0000-EFFFF Вільна область, іноді System BIOS
F0000-FFFFF System BIOS або flash-ROM на системній платі

Завантаження засобами BIOS

Після включення живлення комп’ютера процесор переходить у стан запуску, пам’ять очищується (записуються нулі), перевіряється парність пам’яті, в регістр CS завантажується адреса FFFF[0]H, у регістр ІР завантажується зсув 0. Тому перша інструкція, яка буде виконана, знаходиться за адресою FFFF0H, що сформована парою CS:IP. Це і є точка входу в BIOS (Basic Input Output System ) – базова система введення-виведення інформаціїабо постійна пам’ять, або ROM – read only memory – пам'ять тільки для читання,яка записана в постійному запам’ятаючому пристрої (ПЗУ). BIOS є програмною оболонкою навколо апаратних засобів комп'ютера для звертання інших програм (у тому числі самої операційної системи) до апаратних компонентів через механізм переривань. BIOS перевіряє різні частини комп’ютера, щоб розпізнати та проініціалізувати пристрої, приєднані до нього. Після цього BIOS створює дві області даних:

· таблицю векторів переривань (Interrupt Vector Table), яка починається з адреси 0 та містить 256 4-байтних адрес у формі сегмент:зсув. BIOS та операційна система використовують ці адреси для обробки переривань, які виникають в процесі роботи;

· область даних BIOS (BIOS DATA Area), яка починається з адреси 40[H] і пов’язана зі станом пристроїв, які під’єднані.

Далі BIOS визначає диск, на якому знаходиться операційна система, викликає початковий завантажник з диск. Початковий завантажник завантажує системні файли з диска у пам’ять та передає їм управління. Системні файли містять драйвери пристроїв та інший код для роботи з апаратурою. Ці модулі ініціюють внутрішні системні таблиці та системну частину таблиці векторів переривань.

Як тільки BIOS передає управління операційній системі, можна запускати програму на виконання. При завантаженні виконуваної програми (*.ехе -файл) в оперативну пам’ять MS DOS ініціалізує, як мінімум, три сегментних регістри: CS, DS, SS (ES – додатковий), Windows ініціалізує шість сегментних регістрів (CS, DS, SS, ES, FS, GS). Всі сегменти можуть використовувати різні області пам’яті, можуть частково або повністю співпадати (перекриватися). Це залежить від моделі пам’яті та від конкретної задачі.

<== предыдущая лекция | следующая лекция ==>
Лекція 3_3_2 Організація оперативної пам’яті | Сторінкова пам’ять
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 1399; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.