Смекни!
smekni.com

Огляд архітектури IBM PC-сумісного компютера (стр. 10 из 11)

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

2.5 Використання специфічних властивостей динамічних ЗПДВ

У мікросхемах ДЗПДВ розмір рядка як правило є квадратним коренем від її загальної ємності: 1024 біт для 1МБіт, 2048 біт для 4МБІТ і т.д. З метою збільшення швидкодії всі сучасні мікросхеми пам‘яті забезпечують можливість подачі сигналів синхронізації, які дозволяють виконувати послідовні операції звернення до буферу без додаткового часу звертання до рядка. Маємо 3 способи такої оптимізації:

- блоковий режим – ДЗПДВ може забезпечити видачу чотирьох послідовних комірок для кожного сигналу RAS.

- Сторінковий режим – буфер працює як статичне ЗПДВ; при зміненні адреси стовпця можливий доступ до довільних бітів до тих пар, доки не настане нове звернення до рядка чи не настане час регенерації.

- Режим статичного стовпця – Дуже схожий на сторінковий режим за виключенням того, що не обов‘язково переключати строб адреси стовпця кожен раз для зміни адреси стовпця.

Починаючи з мікросхем ДЗПДВ ємністю 1МБіт, більшість допускає будь-який з цих трьох режимів, причому вибір режиму виконується на стадії встановлення кристалу в корпус шляхом вибору відповідних з‘єднань. Ці операції змінили традиційний час циклу пам‘яті для ДЗПДВ (див. попередню таблицю).

Перевагою такого метода оптимізації є те, що вона базується на внутрішніх схемах ДЗПДВ та не суттєво збільшує вартість системи, дозволяючи у 4 рази збільшити пропускну здатність підсистеми пам‘яті. Наприклад, блоковий режим був розроблений для підтримки режимів таких, як розшарення пам‘яті. Кристал за один раз читає значення 4 біт та передає їх за 4 оптимізовані цикли. Якщо час пересилки по шині не перевищує час оптимізованого циклу, єдине ускладнення для організації пам‘яті з чотириканальним розшаренням полягає у дещо ускладненій схемі керування синхросигналами. Сторінковий режим та режим статичного стовпця також можуть використовуватися, забезпечуючи навіть великий ступень розшарення при більш складному керуванні. Однією з тенденцій у розробці ДЗПДВ є наявність в них буферів сигналів з трьома станами. Це передбачає, що для реалізації традиційного розшарення з великою кількістю кристалів пам‘яті в системі повинні бути передбачені буферні мікросхеми для кожного банку пам‘яті.

Нові покоління ДЗПДВ розроблені з урахуванням можливостей подальшої оптимізації інтерфейсу між пам’яттю та процесором. У якості прикладу можна привести вироби компанії RAMBUS. Ця компанія бере стандартне наповнення ДЗПДВ та забезпечує новий інтерфейс, що робить роботу окремої мікросхеми більш схожою на роботу системи пам‘яті, а не на роботу окремої компоненти. RAMBUS відкинула сигнали RAS/CAS, замінивши їх шиною, яка припускає виконання інших звернень в інтервалі між посилкою адреси та надходженням даних. Кристал може повернути змінну кількість даних за одне звернення, і крім того може самостійно виконати регенерацію. RAMBUS пропонує байтовий інтерфейс та сигнал синхронізації, таким чином мікросхема може тісно синхронізуватися з тактовою частотою процесора.

Більшість систем основної пам‘яті використовують методи, подібні до сторінкового режиму ДЗПДВ для зменшення розбіжностей у швидкодії процесора та мікросхем пам‘яті.

2.6Концепція віртуальної пам‘яті

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

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

Інше питання, тісно пов‘язане з реалізацією концепції віртуальної пам‘яті, стосується організації обчислень задач дуже великого об‘єму. Якщо програма ставали занадто великою, частину її доводилось зберігати на диску та завантажувати до пам‘яті при потребі. Програмісти поділяли програми на частини і потім виявляли, котрі з них можна було виконати незалежно. Віртуальна пам‘ять звільнила програмістів від цієї задачі. Вона автоматично керує двома рівнями ієрархії пам‘яті: основною пам’яттю та зовнішньою (дисковою) пам’яттю.

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

2.7Сторінкова організація пам‘яті

У системах із сторінковою організацією основна та зовнішня пам‘ять діляться на блоки або на сторінки фіксованої довжини. Кожному користувачу надана деяка частина адресного простору, що може перевищувати розмір основної пам‘яті комп‘ютера та обмежена шириною адреси у конкретній машині. Ця частина називається віртуальною пам’яттю користувача. Кожне слово у віртуальній пам‘яті користувача описується віртуальною адресою, що складається з 2 частин: номером сторінки та номером байта у цій сторінці.

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

Для підвищення ефективності такого методу у процесорах використовується спеціальна повністю асоціативна кеш-пам‘ять., яка також називається буфером перетворення адрес (БПА). Хоча наявність БПА не змінює принципу побудови схеми сторінкової організації, з точки зору захисту пам‘яті необхідно передбачити можливість його очищення при переключення з однієї програми на іншу.

Пошук в таблицях сторінок, розташованих у пам‘яті комп‘ютера, та завантаження БПА може здійснюватися або програмним способом, або спеціальними апаратними засобами. У останньому випадку для того, щоб запобігти можливості звернення програми користувача до таблиці сторінок, з якими вони не пов‘язані, передбачені спеціальні заходи. З цією метою в процесорі реалізується спеціальний додатковий регістр захисту, що містить дескриптор таблиці сторінок для даної програми (базово-граничну пару). База з‘ясовує початок таблиці сторінок в основній пам‘яті, а границя – довжину таблиці сторінок відповідної програми. Завантаження цього регістру захисту дозволено тільки у привілейованому режимі. Для кожної програми операційна система зберігає дескриптор таблиці сторінок та встановлює його в регістр захисту процесора перед запуском відповідної програми.

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

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

2.8Сегментація пам‘яті

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