Reklama

Організація пам’яті процесора

Організація пам’яті процесора

Організація пам’яті

Як зазначено, Intel8086(88) має пам’ять 1 Мб. Для того, щоб виконати адресування для такої кількості комірок, необхідно мати 20-розрядний вказівник. Оскільки вказівник команд IP (як і інші регістри МП має 16 розрядів, то МП не має прямого доступу відразу до всієї пам’яті. Це завдання вирішують за допомогою сегментування пам’яті, тобто поділу її на частини. Організація сегмента

Поділ виконано так, що кожний сегмент містить до 64 Кб (65 536 байт). Початкова адреса може бути задана прикладною програмою і завжди повинна починатися з 16-байтових меж. Нагадаємо, що обмін інформацією між МП і пам’яттю відбувається за допомогою фізичних адрес.

Програма ж частіше використовує логічні адреси, що дає змогу записувати команди без попереднього визначення місця, де ця команда буде розташована у пам’яті. Логічна адреса має дві складові: базу сегмента і значення зміщення всередині сегмента. Як тільки блок спряження звертається до пам’яті, суматор адреси (СМА) сформує фізичну адресу за правилом: значення бази сегмента зміщується на чотири розряди ліворуч і отримане 20-розрядне число додається до зміщення.

Базові адреси сегмента отримують діленням фізичної адреси початкової комірки сегмента на 16. Ці адреси містяться у сегментних регістрах (отже, МП 8086 може одночасно обслуговувати до чотирьох сегментів). На розташування сегмента накладається тільки одне обмеження: він повинен бути на межі шістнадцяти байт (тобто фізична адреса початкової комірки повинна ділитися на 16).

Якщо сегмент певним чином визначений, то регістри-вказівники можуть бути використані для адресного звертання до будь-якого байта чи слова в межах цього сегмента. Отже, МП має доступ тільки до 64 Кб пам’яті, а адресування до 1 Мб можливе тільки із застосуванням регістрів сегментів. Це один із недоліків МП сім’ї 8086 (88). Наприклад, МП Motorola МС 68000 (містить 32-розрядні регістри-вказівники) може безпосередньо адресувати до 16 Мб пам’яті. ЩШ

Як зазначено вище, МП має чотири регістри сегментів. Отже, одночасно виділяють чотири адресовані сегменти :

        командний CS;

        даних DS;

        додатковий ES;

        стековий SS.

Сегменти можуть бути суміжними (А, С), розділеними (С, Е), перекриватися частково (В, D; Е, G) або повністю (А, В чи Е, F).

Командний сегмент містить машинні команди, які вибирає пристрій зв’язку, а виконує виконавчий пристрій.

Сегмент даних використовують для запам’ятовування програм, змінних і сталих.

Додатковий сегмент забезпечує додаткові 64 Кб робочої пам’яті.

Стековий сегмент містить стекову структуру ємністю до 64 Кб.

Якщо у всі регістри сегментів завантажити одну й ту ж базову адресу, то всі чотири сегменти відображатимуть одну й ту ж область фізичної пам’яті.

Кеш-пам’ять

З метою збільшення швидкодії при звертанні процесора до оперативної пам’яті в архітектурі 32-розрядних процесорів реалізована така ієрархія пам’яті, яка передбачає наявність відносно великої ємності і малої швидкодії динамічної DRAM (Dynamic RAM) та меншої ємності і більшої швидкодії кеш-пам’яті, або статичної SRAM (Static RAM),

Термін “кеш” (cache) у нашому випадку відповідає значенню “схованка” і секрет цієї схованки полягає в тому, що спеціальний контролер кешу може передбачати використання процесором певної частини оперативної пам’яті і наперед завантажувати її у швидкодіючу кеш- пам’ять. У сучасних комп’ютерах кеш-пам’ять будується за дво- або трирівневою схемою. Кеш першого рівня (LI Cache) вбудований безпосередньо в мікросхему ядра мікропроцесора, починаючи з i486. Кеш другого рівня (L2 Cache) встановлювався на системній платі і приєднувався до спеціальної внутрішньої шини процесора. Починаючи з процесора Р6 кеш другого рівня монтують у корпусі мікропроцесора. Ємність кешу вищих рівнів сягає сотень Мб, а швидкодія приблизно удвічі менша від кешу першого рівня. Кеш третього рівня встановлюють на системній платі, або в корпусі мікропроцесора (використовують при побудові серверних і кластерних систем).

Кешування пам’яті у персональних комп’ютерах

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

Ефективність роботи кеш-пам’яті очевидно залежить від того, на скільки вдало розташовані в ній дані, до котрих відбуваються звернен. ня процесора. Розрізняють два випадки:

        якщо в результаті звернення процесора до кешу знайдено відпо.

відні дані, попередньо прочитані з основної пам’яті, то вважають, що відбулося кеш-попадання (cache hit);

        якщо в результаті звернення процесора даних у кеші не виявилося то вважають що відбувся кеш-промах (cache miss). У цьому випадку процесор повинен прочитати дані з основної пам’яті.

Відношення кількості кеш-попадань до загальної кількості звернень називають коефіцієнтом збігу, або успіху. Відсоток вдалих попадань головно залежить від алгоритму кешування блоків даних з основної пам’яті до кешу.

Контролер кешу забезпечує передавання рядків даних певної довжини (cache line). Кожному рядку кешу відповідає певний блок даних основної пам’яті та інформація про адресу скопійованих у нього даних і про її стан. Якщо в поточний момент часу в рядку відображена достовірна інформація, то такий рядок називають дійсним (valid), у протилежному випадку - недійсним. Інформація про адресу блока даних чи номер сторінки та стан рядка називають тегом (tag) і зберігають у пов’язаній з даним рядком комірці спеціальної пам’яті тегів (tag RAM). Можливий варіант секторованого кешу, в якому один рядок містить інформацію про кілька суміжних комірок (секторів).

Розрізняють дві політики чи стратегії запису даних з кешу в оперативну пам’ять: наскрізний запис WT (Write Through) і зворотний запис WB (Write Back). Наскрізний запис передбачає виконання кожної операції запису одночасно в рядок кеша й оперативну пам’ять. Ця стратегія застосована у перших процесорах i486. У сучасних процесорах переважає стратегія зворотного запису, суть якої полягає у зменшенні кількості операцій запису на системній шині основної пам’яті.

Залежно від способу відображення блоку основної пам’яті на рядок кешу розрізняють три типи архітектури кеш-пам’яті:

        кеш прямого відображення (direct-mapped cache);

        повністю асоціативний кеш (fully associative cache);

        набірно-асоціативний кеш (set-associative cache).

Стек - це спеціальна область пам’яті. Адресацією в цій області управляє регістр SP або покажчик стека. Використовується ця пам’ять в основному для тимчасового зберігання вмісту регістрів. Саме тимчасового. Найголовніше зрозуміти, як стек працює. А працює він за принципом перший прийшов останній пішов. Давайте уявимо. Я ложу книгу на стіл. Потім зверху ще одну книгу. Перша книга внизу. Що б витягти її мені спочатку потрібно зняти верхню і тільки після цього я отримаю доступ до першої. Але можна просто в житті її висмикнути. Можна. Уявіть собі купу книг до стелі. Спробуйте висмикнути нижню. Є величезний шанс що Вас цими книгами і завалить. 

Reklama