Смекни!
smekni.com

Організація пам яті МП IA 32 (стр. 1 из 3)

Полтавський Військовий Інститут Зв’язку

Кафедра схемотехніки радіоелектронних систем

ОБЧИСЛЮВАЛЬНА ТЕХНІКА ТА МІКРОПРОЦЕСОРИ

напрям підготовки 0924 «Телекомунікації»

Організація пам’яті МП IA-32.

Полтава – 2006

Навчальна література.

1. Якименко Ю.І. та ін. Мікропроцесорна техніка: підручник. – К.: ІВЦ «Видавництво «Політехніка», «Кондор», 2004. с. 91 – 94, 153 -- 161.

2. Казаринов Ю.М. и др. Микропроцессорный комплект К1810: Структура, программирование, применение: Справочная книга. – М.: Высшая школа, 1990.

3. Гук М., Юров В. Процессоры Pentium III, Athlon и другие – СПб: Издательство "Питер", 2000.


МП архітектури ІA-32 можуть працювати в одному з двох основних режимів, які називаються режимом реальної адресації і захищеним режимом віртуальної адресації (або більш коротко -- реальним режимом і захищеним режимом).

Реальний режим цілком суміжний з режимом роботи мікропроцесора І8086. Цей режим принципово однозадачний, у ньому можлива адресація 1 Мбайт фізичної пам'яті, розмір сегмента не може перевищувати 64 Кбайт.

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

1. Загальні поняття о моделях пам’яті, які реалізуються в МП архітектури IA-32.

Процесори ІA-32 дозволяють реалізувати різні моделі пам'яті. Найпростішу організацією має плоска модель пам'яті: уся пам'ять представляється єдиною лінійною послідовністю байт. Це класична реалізація фон-нейманівської архітектури - тут зберігаються і дані, і коди програми. Відповідальність за коректне використання пам'яті лягає цілком на прикладного програміста - він повинний піклуватися про те, щоб дані не "затерли" коди або на них не "наїхав" зростаючий стек. Щоб одержати плоску модель пам'яті, по суті, досить зробити так, щоб усі сегментні регістри вказували на ту саму область пам'яті.

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

Проміжне положення між названими моделями займає модель пам'яті реального режиму. Тут також пам'ять організується у виді сегментів, але незалежності і захищеності сегментів немає. Використання цієї моделі у свій час треба було лише для того, щоб забезпечити можливість адресації 1 МБайт пам'яті за допомогою шістнадцятирозрядних регістрів (216 = 64 Кбайт). Таку модель дотепер використовують додатки, написані для операційних систем реального режиму типу MS DOS. Співвідношення між переліченими моделями пам’яті пояснюється рис.1.


Рис.1. Співвідношення моделей пам’яті.

Пам'ять для МП представляється у виді лінійної послідовності байт і підрозділяється на адресовані елементи: байти (8 біт), слова (16 біт), подвійні слова (32 біт) і чотирьохкратні слова (64 біт).

Слово записується в двох суміжних байтах, починаючи з молодшого. Адресою слова є адреса його молодшого байта.Наступний байт (адреса на одиницю більше) містить старший байт слова. Подвійне слово записується в чотирьох суміжних байтах, також починаючи з молодшого байта, адреса якого і є адресою подвійного слова. Таким чином, фізична адреса комірки пам'яті може розглядатися і як адреса байта, і як адреса слова. Узагалі говорячи, такий порядок збереження слів (молодший байт - по молодшій адресі, старший - по старшої), що часто називають порядком L-H (low byte - hіgh byte), є характерною рисою процесорів І80Х86.

Не слід вважати, що реальний режим роботи процесорів ІA-32 у точності копіює режим роботи мікропроцесора І8086. При тім, що забезпечується сумісність цих режимів "зверху вниз", між ними, проте, маються істотні розходження. Наприклад, хоча в реальному режимі за замовчуванням використовується 16-розрядна адресація (при якій молодші половини розширених регістрів МП ІA-32 використовуються як 16-розрядні регістри МП І8086), але є можливість переключення для поточної інструкції на 32-бітну адресацію, що, зрозуміло, у МП І8086 у принципі неможливо.

2. Модель пам’яті МП архітектури IA-32 у реальному режимі.

Реальний режим роботи МП ІA-32 цілком сумісний з режимом роботи мікропроцесора І8086. Цей режим принципово однозадачний. Оскільки для адресації комірок пам'яті використовується двадцятирозрядна фізична адреса, у ньому можлива адресація 220=1 МБайт фізичної пам'яті. Цей простір пам'яті призначений для збереження кодів інструкцій і даних, для доступу до яких є великий набір різних способів адресації. Логічно пам'ять у реальному режимі організується у вигляді сегментів фіксованого розміру - 64 Кбайт.

Тому що внутрішні регістри МП 8086 були шістнадцятирозрядними, при роботі МП ІA-32 у реальному режимі за замовчуванням також використовується 16-бітна адресація. Фізична двадцятирозрядна адреса (РА) виходить із двох шістнадцятирозрядних частин логічної адреси - адреси сегмента (Seg) і виконавчої адреси ЕА (executіve address) або внутрісегментного зсуву, які додаються зі зсувом Seg на 4 біти. При запису адрес використовується шістнадцяткова система числення. Формат запису логічної адреси з указівкою значень сегмента і зсуву, або їхнього місця розташування в регістрах процесора виглядає в такий спосіб: Seg:EA (наприклад, DCBA:4321 або CS:ІP).

Зсув адреси сегмента на 4 біти вліво еквівалентний його множенню на 16, отже, фізична адреса

PA = 16 * Seg + EA.

Адреса сегмента Seg зберігається в одному із сегментних регістрів CS, DS, SS, ES. Виконавча адреса, також названа ефективною адресою, може бути константою, вмістом регістра (наприклад, ІP при обчисленні адреси команди, SP при стекових операціях), вмістом комірки пам'яті або сумою декількох величин (наприклад, двох регістрів і константи), але ця сума завжди шістнадцятирозрядна, тобто перенос за межі старшого розряду слова ігнорується. Таким чином, фізична адреса ніколи не перейде границю 64-килобайтного сегмента, на початок якого вказує поточний сегментний покажчик. Сегмент виходить як би згорнутим у кільце: у міру збільшення компонентів, які додаються, виконавча адреса росте, але після досягнення значення FFFF16 знову обнуляеться і починає рости з початку. З одного боку, ця властивість забезпечує деякий захист сегментів один від одного (хоча некоректно написана програма може легко перезавантажити вказівник сегмента і зашкодити дані іншого сегмента), але з іншого боку, сегментація пам'яті є істотною незручністю для написання великих програмних модулів.

Згорнутим у кільце виявляється і весь простір фізичної пам'яті: у міру збільшення виконавчої адреси і адреси сегмента фізична адреса росте, але тільки до значення FFFFF16, після чого обнуляеться і починає рости з початку. Згортання сегментів і всього адресного простору в МП 8086 ніяк не контролюється.

Формування фізичної адреси пам'яті процесором 8086 (або процесором ІА-32 у реальному режимі)пояснюється схемою, представленої на рис.2.

Рис.2. Формування фізичної адреси процесором 8086.

Приклад:

Seg=DCBA; EA=4321.

Зсув сегмента: DCBA0.

Одержання фізичної адреси:

DCBA0

+ 04321

E0EC1

Фізична адреса: EOEC116= 1110 0000 1110 1100 00012

Весь простір пам'яті розбивається на параграфи -- області з 16 суміжних байт, починаючи з нульової адреси. Тому що чотири молодших біта адреси сегмента нульові, будь-який сегмент може починатися тільки на границі параграфа. Для збереження повної логічної (сегментованої) адреси використовується подвійне слово, і в ньому спочатку розташовується слово зсуву - молодший байт, потім старший. Потім у тім же порядку розташовується адреса сегмента. На рис.3 представлений приклад, що ілюструє розміщення повної логічної адреси DCBA:4321 у комірках пам'яті.

7 … 0
01003 DC HB Сегмент DCBA
01002 BA LB
01001 43 HB Смещение 4321
01000 21 LB

Рис.3. Приклад розміщення повної логічної адреси в комірках пам'яті.

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

3. Модель пам’яті МП архітектури IA-32 у захищеному режимі.

Захищений режим (захищений режим віртуальної адресації) процесорів ІA-32 є багатозадачним, тобто в цьому режимі МП може виконувати кілька задач одночасно, використовуючи спеціальні механізми розподілу ресурсів обчислювальної системи між задачами, що виконуються. Він призначений для забезпечення незалежності виконання декількох задач, тобто для захисту ресурсів однієї задачі від можливого впливу іншої. У захищеному режимі, на відміну від реального, некоректні звертання до пам'яті блокуються системою захисту, що керує операційною системою. МП у цьому режимі забезпечує чотирирівневу систему захисту просторів пам'яті і введення-виведення, а також переключення задач.