<
  • Главная
Статьи

Таблиці переадресації в A- і R-профілях

  1. Загальні відомості
  2. База таблиці переадресації
  3. Таблиця переадресації першого рівня
  4. «Груба» таблиця переадресації другого рівня
  5. «Тонка» таблиця переадресації другого рівня

Загальні відомості

Інформація, необхідна для перетворення віртуальних адрес в фізичні і для контролю прав доступу, знаходиться в записах таблиць переадресації, розташованих в пам'яті. MMU кешируєт останню використану інформацію з цих таблиць в буферах швидкої переадресації (TLB), і звернення до пам'яті для вибірки записів таблиць виконуються лише тоді, коли відповідна інформація в TLB відсутня.

Таблиці переадресації мають два рівня. Перший (верхній) рівень описує перетворення адрес для секцій і суперсекцій (ділянок пам'яті розміром 1 і 16 Мбайт відповідно), а також містить посилання на таблиці другого рівня, що відповідають за перетворення адрес для сторінок (ділянок пам'яті розміром 64, 16 або 1 Кбайт - відповідно великі, малі і крихітні сторінки). Підтримка суперсекцій розміром 16 Мбайт є необов'язковою; крихітні сторінки розміром 1 Кбайт не підтримуються, починаючи з версії VMSAv6 . Таким чином, MMU забезпечує гарантовану підтримку секцій довжиною 1 Мбайт і сторінок в 64 і 16 Кбайт.

Великі і малі сторінки можуть ділитися на чотири рівні частини довжиною відповідно 16 і 1 Кбайт. У версії VMSAv6 ця можливість вважається застарілою, але для сумісності підтримується.

Можливість зчитування таблиць переадресації з кеш-пам'яті першого рівня визначається реалізацією. Тому щоб уникнути проблем після модифікації таблиць слід спорожняти відповідні рядки кешу. Крім того, таблиці не можуть розміщуватися в тісно пов'язаної пам'яті (TCM) , Оскільки вибірка звідти рядків таблиць для виконання переадресації неможлива.

Формат таблиць переадресації визначається значенням біта XP регістра управління . Коли він дорівнює 0, дозволяється використання підлеглих пам'яті; коли дорівнює 1, підсторінки заборонені, але замість цього з'являються гнучкіші можливості управління доступом. Значення 1 може бути встановлено тільки у версіях, починаючи з VMSAv6; значення 0 в VMSAv6 вважається застарілим, але підтримується для сумісності.

База таблиці переадресації

У версіях, що передують VMSAv6 , Є лише один набір таблиць переадресації. Базова фізична адреса таблиці першого рівня знаходиться в регістрі бази таблиці переадресації (Translation Table Base Register, TTBR), доступ до якого здійснюється через регістр 2 співпроцесора управління системою (CP15) . Ця таблиця завжди містить 4096 елементів і описує перетворення всіх можливих віртуальних адрес в фізичні.

У версії VMSAv6 існують два набори таблиць, базові адреси яких знаходяться відповідно в регістрах TTBR0 і TTBR1. Обидва регістра TTBR, а також регістр управління базою таблиці переадресації TTCBR (Translation Table Control Base Register; див. Нижче) доступні через регістр 2 CP15 . У TTBCR задається кількість старших бітів ВА (від 0 до 7), при нульовому значенні якого в якості бази буде використовуватися регістр TTBR0; в тому випадку, якщо хоча б один з цих старших бітів дорівнює 1, в якості бази використовується регістр TTBR1. Завдяки цьому розмір таблиці першого рівня, що адресується через TTBR0, може коливатися в межах від 128 байт до 16 Кбайт (від 32 до 4096 елементів), що відповідає розміру віртуального адресного простору від 32 Мбайт до 4 Гбайт. Таблиця, що адресується через TTBR1, завжди має розмір 16 Кбайт. Передбачається, що в TTBR1 постійно знаходиться базовий адреса таблиці переадресації, використовуваної для звернень до пам'яті з боку операційної системи (вона, відповідно, повинна розташовуватися в старших адресах пам'яті; там же повинні знаходитися і регістри зовнішніх пристроїв); в регістрі ж TTBR0 знаходиться базовий адреса таблиці переадресації для поточного завдання, віртуальний адресний простір якої завжди починається з нульового адреси.

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

Таблиця переадресації першого рівня

Таблиця переадресації першого рівня містить до 4096 записів розміром слово; кожен запис описує відображення одного мегабайта віртуального адресного простору. Індексом запису, який використовується для перетворення даного віртуального адреси в фізичний, служать старші 12 розрядів MVA.

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

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

Біти записів таблиці першого рівня мають таке призначення.

Біти 1: 0 визначають правила перетворення адрес для області віртуального адресного простору, що відповідає даній записи:

Біти B (2), C (3), TEX (14:12) і S (16) описують атрибути галузі фізичної пам'яті , На яку відображаються віртуальні адреси, відповідні даному записі. Поле TEX і біт S з'явилися у версії VMSAv6.

Біти Domain (8: 5), AP (11:10) і APX (15) застосовуються для управління правами доступу до даної області пам'яті. Біт APX з'явився у версії ARMv6.

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

Поля Coarse page table base address (31:10), Fine page table base address (31:12), Section base address (31:20) і Supersection base address (31:24, 23:20 і 8: 5) визначають старші розряди фізичного базового адреси «грубої» і «тонкої» таблиці переадресації другого рівня, секції та суперсекціі відповідно. Базова адреса суперсекціі розділений на три частини, причому він є єдиним, що дозволяє адресувати фізичну пам'ять об'ємом понад 4 Гбайт (докладніше про це говориться в підрозділі «Перетворення адрес» ).

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

«Груба» таблиця переадресації другого рівня

«Груба» таблиця переадресації містить 256 однослівних записів і описує відображення на фізичну пам'ять великих (64 Кбайта) і малих (4 Кбайта) сторінок віртуальної пам'яті. Кожен запис таблиці відповідає за відображення 4 Кбайт віртуального адресного простору на фізичне, тому записи для великих сторінок повинні повторюватися в таблиці 16 раз поспіль.

Розрізняють два формати цих запсей: з підтримкою підлеглих і без такої, причому формат без підлеглих з'явився лише в версії VMSAv6. Підсторінки цією версією підтримуються, але вважаються застарілими; в майбутньому їх підтримка може бути скасована. Формати записів наведені на малюнках.

Формат записів «грубої» таблиці переадресації другого рівня з підсторінками Формат записів «грубої» таблиці переадресації другого рівня без підлеглих

Призначення розрядів елемента таблиці наступне.

Біти 1: 0 визначають, яку сторінку описує даний елемент:

Біти B (2), C (3), S (10, тільки при заборонених підлеглих) і TEX (14:12 для великих сторінок і 8: 6 для розширених малих сторінок; у звичайних малих сторінок цього поля немає) визначають атрибути пам'яті , В якій знаходиться сторінка. Поле TEX і біт S з'явилися у версії VMSAv6; в більш ранніх версіях архітектури відповідні розряди повинні бути рівні нулю. Для звичайних малих сторінок, доступних тільки при дозволених підлеглих, також передбачається, що це поле дорівнює нулю.

Біти AP (біти 5: 4 при заборонених підлеглих, а також при дозволених підлеглих для розширених малих сторінок; чотири поля по два біти з 11-го по 4-й включно при дозволених підлеглих для великих і звичайних малих сторінок - по одному полю на кожну підсторінку), APX (біт 9, тільки при заборонених підлеглих) і XN (тільки при заборонених підлеглих, біт 15 для великих сторінок і 0 для розширених малих сторінок) керують доступом на сторінку цілком або до її окремим підлеглих. Два останніх розряду з'явилися у версії VMSAv6 і повинні бути рівні нулю в більш ранніх версіях. Якщо MMU версії VMSAv6 працює з дозволеними підсторінками (в режимі сумісності з попередніми версіями), вважається, що ці біти дорівнюють нулю.

Біт nG (11, тільки при заборонених підлеглих) з'явився у версії VMSAv6 і використовується з механізмом ідентифікації процесів . Коли він дорівнює нулю, сторінка вважається глобальною, коли одиниці - відноситься до певного додатком.

Поля Large page base address (31:16) для великих і Small page base address і Extended small page base address (31:12) для звичайних і розширених малих сторінок містять фізична базова адреса сторінки.

Біти IGN пристроєм управління пам'яттю ігноруються і можуть мати будь-які значення. Біти SBZ повинні бути рівні нулю.

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

«Тонкі» таблиці переадресації підтримуються тільки в версіях, що передують VMSAv6, тому користуватися ними не рекомендується. Вони мають розмір 4 Кбайта і складаються з 1024 записів, кожна з яких описує відображення 1 Кбайта віртуальної пам'яті на фізичну. Для опису великий сторінки потрібно 64 ідентичних записів «тонкої» таблиці сторінок, для опису малої сторінки - чотири записи.

Формат записів «тонкої» таблиці переадресації наведено на малюнку.

Формат записів «тонкої» таблиці переадресації другого рівня

Призначення розрядів записи «тонкої» таблиці переадресації наступне.

Біти 1: 0 визначають вид сторінки, яка описується даним записом:

Біти B (2) і C (3) визначають атрибути галузі фізичної пам'яті , На яку відображена дана сторінка.

Біти AP (5: 4 для крихітних сторінок і чотири поля по два біти з 11-го по 4-й включно для підлеглих великих і малих сторінок) служать для перевірки прав доступу на сторінку або її підлеглих.

Поля Large table base address (31:16) для великих, Small page base address (31:12) для малих і Tiny page base address (31:10) для крихітних сторінок містять базовий адреса сторінки.

Біти IGN пристроєм управління пам'яттю ігноруються і можуть мати будь-яке значення, а біти SBZ повинні бути рівні нулю.



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью