logo
AOM / Мельник А

10.3.4.3. Апаратна реалізація сторінкової таблиці

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

В першій структурі входом в сторінкову таблицю є номер віртуальної сторінки і но­мер програми, як це показано на рис рис. 10.26, і вона будується як пам'ять з довільним доступом на основі мікросхем напівпровідникової пам'яті.

Кількість програм та віртуальних сторінок може бути досить великою. Наприклад, при використанні 32-розрядної адреси та сторінок об'ємом 16КБ, кількість записів в сторінковій таблиці для однієї програми буде рівною 232/214 = 218 = 256К. Тоді об'єм сто­рінкової таблиці буде рівним (враховуючи формат кожного запису) 256К*4Б = 1 МБ, що складає 64 сторінки основної пам'яті, причому і цю цифру ще потрібно помножити на кількість програм. Тобто ємність пам'яті сторінкової таблиці такого типу також буде ве­ликою, причому ця пам'ять буде повільною. Крім того, в дійсності необхідно зберігати значно менше записів, так як записи є малорозрядними.

В деяких комп'ютерах в цій пам'яті зберігається лише одна сторінкова таблиця, яка належить активній програмі. Решта сторінкових таблиць зберігаються в основній пам'я­ті. При зміні циклу активності операційна система відправляє в основну пам'ять дану сторінкову таблицю і завантажує нову. Крім того, сторінкова таблиця також може бути поділена на сторінки, тобто можуть бути використані багаторівневі сторінкові таблиці, як це показано на рис. 10.27.

385

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

В другій структурі довжина сторінкової таблиці визначається лише кількістю фізич­них сторінок в основній пам'яті і не залежить від числа цільових програм. Ємність пам'я­ті зменшується, проте ускладнюється структура - застосовується асоціативна пам'ять, що дозволяє вибирати дані за 'їх змістом, а не за місцезнаходженням. Але, як було по­казано вище, кількість фізичних сторінок в сучасних комп'ютерах є досить великою, що робить проблематичним застосування асоціативної сторінкової таблиці. В зв'язку з цим, в сучасних комп'ютерах поступають наступним чином: виділяють сторінковій таблиці область в основній пам'яті, хоча це приводить до подвоєння часу звернення, та використовують додаткову кеш пам'ять, яку називають буфером перетворення з перед­історією (TLB - Translation Look-aside Buffer). Використання TLB дозволяє зменшити час перетворення віртуальних адрес у фізичні. Він будується як кеш пам'ять та може бути організованим за принципом прямого, асоціативного та частково-асоціативного відо­браження. При кожному перетворенні номера віртуальної сторінки в номер фізичної сторінки результат заноситься в TLB:номер фізичної сторінки до асоціативного регі­стра, а номер віртуальної сторінки - до регістрів тегів. Таким чином, до TLBпопадають результати декількох останніх операцій перетворення адрес. При кожному зверненні до основної пам'яті спочатку потрібна віртуальна сторінка шукається в TLB, і при попадан­ні номер відповідної фізичної сторінки береться з цього буфера. Якщо зафіксовано про­мах, то процедура перетворення адрес здійснюється за допомогою сторінкової таблиці, яка зберігається в основній пам'яті, після чого номер віртуальної та фізичної сторінок заноситься до TLB. Структура TLB,побудованої як повністю асоціативна кеш пам'ять, наведена на рис. 10.28.

386

Зазвичай число записів (входів) в TLBє невеликим (64-256), наприклад в комп'ютері PentiumIIIє 64 входи, при розмірі сторінки 4 КБ, що дозволяє отримати швидкий до­ступ до пам'яті ємністю 256 КБ.

Структура TLB,побудованої як частково-асоціативна кеш пам'ять, наведена на рис. 10.29.

Крім номерів програми, віртуальної сторінки та фізичної сторінки слово сторінкової таблиці включає п'ять ознак: РЗ, РВ, РН, РМ, та РД.

Для керування занесення інформації в асоціативні регістри до їх складу вводять до­даткові розряди: розряд зайнятості (РЗ) і розряд використання (РВ).

387

Ознака РЗ (розряд зайнятості) потрібна для реалізації стратегії заміщення вмісту асоціативних регістрів. РЗ встановлюється в 1 при записі інформації в асоціативні регі­стри. РЗ говорить про те, вільний чи зайнятий даний асоціативний регістр.

Так як зазвичай всі асоціативні регістри зайняті інформацією, то для запису нової необхідно звільнити якийсь асоціативний регістр. Звільняється той регістр, інформація в якому не використовувалась Для фіксації звернень до даної віртуальної сторінки ви­користовується ознака РВ (розряд використання), який встановлюється в 1 при звертан­ні до віртуальної сторінки. Якщо всі РЗ = 1, то нова інформація засилається в регістр, в якому РВ = 0. Якщо всі РВ = 1, то вони автоматично скидаються

Ознака РН (розряд наявності) встановлюється в одиницю, якщо віртуальна сторін­ка в даний момент знаходиться в основній пам'яті. В цьому випадку в асоціативному регістрі знаходиться номер фізичної сторінки. Якщо РН = 0, то при спробі звернення до даної віртуальної сторінки операційна система завантажує сторінку з зовнішньої пам'яті до основної. При цьому в асоціативному регістрі наявна інформація про місце розміщення сторінки в зовнішній пам'яті. Завантаження сторінки з зовнішньої пам'яті супроводжується записом до відповідного асоціативного регістра номера фізичної сто­рінки, до якої буде записана віртуальна сторінка

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

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

Потрібно відзначити, що при сторінковій організації пам'яті виникають ті ж пробле­ми з заміщенням сторінок в основній пам'яті, як це було для кеш пам'яті. Зазвичай в ОП немає вільних сторінок і при завантаженні нової інформації якусь сторінку доводиться видаляти з ОП. Необхідний алгоритм визначення сторінки, що підлягає знищенню. Тут використовуються ті ж самі методи заміщення сторінок, що і в кеш пам'яті: LRU - зни­щення сторінки з максимальним простоєм, LFU - знищення сторінки з мінімальною частотою звернення, FIFO - знищення сторінки згідно з чергою поступлення, RAND - зни­щення сторінки випадковим чином При цьому потрібно відзначити, що плата за промах (коли вміст потрібної сторінки відсутній в основній пам'яті) є досить великою (десятки мілі-секунд), оскільки потрібно робити звернення до повільної зовнішньої пам'яті

Важливим питанням сторінкової організації пам'яті є вибір об'єму сторінки. На ко­ристь малого об'єму сторінки говорять такі аргументи:

На користь великого об'єму говорять наступні аргументи:

■ зменшуються затрати на сторінкову таблицю;

■ зменшується час підготовчих операцій в ЗП. Зазвичай вибирають об'єм сторінки в діапазоні 8КБ - 32КБ

Таким чином використання сторінкової організація пам'яті дає наступні переваги:

■ Віртуальна пам'ять представляється для програміста як пам'ять одного рівня, що спрощує програмування.

388

■ Об єм віртуальної пам яті визначається довжиною адресного поля і може набага­то перевищувати ємність основної пам'яті,

Разом з тим, використання сторінкової організації пам яті вимагає додаткових апа­ратних та програмних засобів, та ускладнює роботу комп'ютера.