Ієрархія пам'яті пк. Ієрархія пам'яті, кешування Ієрархія типів пам'яті

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

Дозволити цю дилему можна, використавши в підсистемі пам'яті різні технології зберігання інформації, реалізувавши якусь ієрархію підсистеми пам'яті. Типова ієрархія підсистеми пам'яті схематично представлена ​​рис. 5.1.


Мал. 5.1. Ієрархія підсистеми пам'яті комп'ютера

Принцип ієрархії передбачає виконання таких умов:

кількість рівнів ієрархії може бути довільною;

кожен рівень ієрархії виконує певний набір функцій;

звернення ззовні завжди відбувається до верхнього рівня ієрархії;

якщо i-й рівень ієрархії може виконати отриманий запит, він його виконує і передає результат джерелу запиту – (i-1)-му рівню ієрархії;

якщо i-й рівень ієрархії неспроможна виконати отриманий запит, він формує запит до (i+1)-му рівню ієрархії;

у міру переходу від верхніх рівнів ієрархії підсистеми пам'яті до нижніх рівнів:

підвищується ємність;

збільшується час доступу;

Таким чином, менш ємні, але більш швидкодіючі технології пам'яті доповнюються менш швидкодіючими технологіями, але мають більшу ємність.

Ключовими питаннями, вирішення яких забезпечує успіх ієрархічного проекту підсистеми пам'яті, є:

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

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

Припустимо, що процесор у системі може звертатися до пам'яті двох рівнів. Пам'ять 1-го рівня містить N слів і час доступу 1 нс, а пам'ять 2-го рівня - 1000 N слів і час доступу 10 нс. Припустимо, що й потрібне слово перебуває у пам'яті 1-го рівня, то процесор витягує його безпосередньо, і якщо у пам'яті 2-го рівня, то потрібне слово спочатку записується на згадку про 1-го рівня, тож звідти його витягує процесор. Для простоти аналізу не враховуватимемо час, необхідний процесору для того, щоб з'ясувати, де саме знаходиться шукане слово, - в пам'яті 1-го або 2-го рівня.

Нехай параметр Нхарактеризує частку запитів до пам'яті першого рівня у всьому потоці запитів, параметр Т 1 - час доступу до пам'яті першого рівня, а Т 2- Час доступу до пам'яті другого рівня. Немає нічого несподіваного в тому, що чим вище значення Н, тобто. Чим більша частина всіх звернень процесора за даними посідає найшвидший рівень, тим менший середній час звернення до ієрархічної підсистеми пам'яті, і тим ближче воно до значення Т 1.

Середній час звернення до такої підсистеми пам'яті може бути формулою:

Припустимо, що 95% всіх звернень припадає на згадку про перший рівень (тобто, H=0.95). Тоді середній час вилучення одного слова з ієрархічної підсистеми пам'яті дорівнюватиме:

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

Серед існуючих на сьогоднішній день технологій пам'яті, не так вже й складно підібрати ряд, що має наступні властивості:

необхідне швидкодію пам'яті верхнього рівня;

зниження відносної вартості зберігання інформації;

підвищення ємності;

збільшення часу доступу;

на певному рівні ієрархії забезпечується енергонезалежність;

реалізація вимоги щодо вкладеності.

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

Висновки

1. Якщо швидкодія процесора та швидкодія енергонезалежної напівпровідникової пам'яті близькі, підсистема оперативної пам'яті може бути реалізована з одним рівнем ієрархії.

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

3. Кількість і параметри пам'яті рівнів ієрархії залежать від застосування комп'ютера.

4. У високопродуктивних сучасних комп'ютерах існує до 6 рівнів ієрархії підсистеми пам'яті.

5. Кількість рівнів ієрархії може бути довільним.

6. Кожен рівень ієрархії виконує певний набір функцій.

7. Звернення до ієрархічної підсистеми пам'яті ззовні відбувається до верхнього рівня ієрархії.

8. Якщо i-й рівень ієрархії може виконати отриманий запит, він його виконує і передає результат джерелу запиту – (i-1)-му рівню ієрархії.

9. Якщо i-й рівень ієрархії не може виконати отриманий запит, він формує запит до (i+1)-го рівня ієрархії.

10. У міру переходу від верхніх рівнів ієрархії підсистеми пам'яті до нижнього рівня:

знижується відносна вартість зберігання інформації;

підвищується ємність;

збільшується час доступу;

знижується частота звернень із попереднього рівня ієрархії;

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

на певному рівні ієрархії забезпечується енергонезалежність.

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

Адресація даних

Команди, виконувані ЕОМ під час виконання програми, як і числові і символьні операнди, зберігаються у пам'яті комп'ютера. Пам'ять складається з мільйонів осередків, у кожному з яких міститься один біт інформації (значення 0 чи 1). Біти рідко обробляються поодинці, а зазвичай групами фіксованого розміру. І тому пам'ять організується в такий спосіб, що групи по n біт можуть записуватися і зчитується за операцію. Група n біт називається словом, а значення n – довжиною слова. Схематично пам'ять комп'ютера можна у вигляді масиву слів.

Зазвичай довжина машинного слова комп'ютерів становить від 16 до 64 біт. Якщо довжина слова дорівнює 32 бітам, в одному слові може зберігатися 32-розрядне число в додатковому коді або чотири символи ASCII, що займають 8 біт кожен. Вісім бітів, що йдуть поспіль, є байтом. Для представлення машинної команди потрібно одне чи кілька слів.

Байтова адресація

Окремі біти, зазвичай, не адресуються і найчастіше адреси призначаються байтам пам'яті. Пам'ять, у якій кожен байт має окрему адресу, називається пам'яттю з байтовою адресацією. Послідовні байти мають адреси 0.1, 2 і так далі Таким чином, при використанні слів завдовжки 32 біти послідовні слова мають адреси 1.4, 8, …, і кожне слово складається з 4 байт.

Прямий та зворотний порядок байтів

Існує два способи адресації байтів у словах:

  • у прямому порядку. Прямим порядком байтів (little-endian) називається система адресації, при якій байти адресуються праворуч наліво, так що найменша адреса має наймолодший байт слова (розташований з правого краю);
  • в зворотньому напрямку. Зворотним порядком байтів (big-endian) називається система адресації, коли байти адресуються зліва направо, отже найстарший байт слова (розташований з лівого краю) має найменшу адресу.

У ПЕОМ з урахуванням 80 x 86 використовується прямий порядок, а ПЕОМ з урахуванням Motorola 68000 - зворотний. В обох цих системах адреси байтів 0.4, 8 і так далі застосовуються як адреси послідовних слів пам'яті в операціях читання та запису слів.

Розташування слів у пам'яті

У разі 32-розрядних слів їх природні межі розташовуються за адресами 0.4, 8 тощо При цьому вважається, що слова вирівняні за адресами пам'яті. Якщо говорити загалом, слова вважаються вирівняними в пам'яті в тому випадку, якщо адреса початку кожного слова кратна кількості байтів у ньому. За практичними причинами, пов'язаними з маніпулюванням Двійково-кодованими адресами, кількість байтів у слові зазвичай є ступенем двійки. Тому, якщо довжина слова дорівнює 16 біт (2 байтам), вирівняні слова починаються за байтовими адресами 0.2, 4, …, а якщо вона дорівнює 64 біт (23, тобто 8 байтів), то вирівняні слова починаються за байтовими адресами 0.8, 16 , …

Не існує причини, через яку слова не могли б починатися з довільних адрес. Такі слова називаються вирівняними. Як правило, слова вирівнюються на адреси пам'яті, але іноді цей принцип порушується.

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

Адресний простір

Для доступу до пам'яті потрібні імена або адреси, які визначають розташування даних у пам'яті. В якості адрес традиційно використовуються числа з діапазону від 0 до 2 k - 1 зі значенням до, достатнім для адресації всієї пам'яті комп'ютера. Всі 2 k адреси складають адресний простір комп'ютера. Отже, пам'ять складається з 2 k елементів, що адресуються. Наприклад, використання 24-розрядних (як у процесорі 80286) адрес дозволяє адресувати 2 24 (16 777 216) елементів пам'яті. Зазвичай ця кількість адресованих елементів позначається як 16 Мбайт (1 Мбайт = 220 = 1048576 байт, адресний простір 8086 і 80186). Оскільки у процесорів 80386.80486 Pentium та їх аналогів 32-розрядні адреси, їм відповідає адресний простір 2 32 байт, або 4 Гбайт.

Адресний простір ЕОМ графічно може бути зображено прямокутником, одна зі сторін якого представляє розрядність адресованої комірки (слова) процесора, а інша сторона - весь діапазон доступних адрес для цього ж процесора. Діапазон доступних адрес процесора визначається розрядністю шини адреси системної шини. При цьому мінімальний номер осередку пам'яті (адреса) дорівнюватиме 0, а максимальний визначається з формули M=2 n - 1.

Для шістнадцятирозрядної шини це буде 65535 (64 К).

Ієрархічна організація пам'яті

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

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

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

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

Частка влучень (hit ratе)- частка звернень до даних, знайденим більш рівні. Частка промахів (miss rate) - це частка звернень до даних, які знайдено більш рівні.

Час поводження при попаданні (hit time)є час звернення до вищого рівня ієрархії, який включає, зокрема, і час, необхідний визначення того, чи є звернення потраплянням чи промахом.

Втрати на промах (miss реnaltу)є час для заміщення блоку у вищому рівні на блок з нижчого рівня плюс час для пересилання цього блоку в необхідний пристрій (зазвичай процесор).

  • час доступу (access time)- час звернення до першого слова блоку під час промаху;
  • час пересилання (transfer time)- додатковий час для пересилання слів блоку, що залишилися. Час доступу пов'язаний із затримкою пам'яті нижчого рівня, а час пересилання - зі смугою пропускання каналу між пристроями пам'яті двох суміжних рівнів.

Кеш-пам'ять

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

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

Стратегії управління ієрархічною пам'яттю

При побудові систем з ієрархічною пам'яттю метою отримання максимальної продуктивності підсистеми пам'яті за її мінімальної вартості. Ефективність тієї чи іншої системи кеш пам'яті залежить від стратегії керування пам'яттю. Стратегія управління пам'яттю включає: - метод відображення основної пам'яті в кеші; алгоритм взаємодії між повільною основною та швидкою кеш пам'яттю; стратегії заміщення інформації у кеші.

Відображення пам'яті на кеш

Існує три основні способи розміщення блоків (рядків) основної пам'яті в кеші:

  • кеш пам'ять із прямим відображенням (direct-mapped cache);
  • повністю асоціативна кеш пам'ять (fully associative cache).
  • частково асоціативна (або множина асоціативна, partial associative, set-associative cache); кеш пам'ять;

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

(Адреса блоку кеш пам'яті)=(Адреса блоку основної пам'яті) mod (Число блоків у кеш пам'яті).

Цей тип пам'яті найбільш простий, але й найменш ефективний, оскільки дані з різних областей пам'яті можуть конфліктувати через єдиний рядок кешу, де вони тільки можуть бути розміщені.

Повністю асоціативна пам'ять

Може відображати вміст будь-якої області пам'яті в будь-яку область кешу, але вкрай складна в схемотехніці.

Частково-асоціативний кеш

Є найпоширенішим на даний момент серед процесорних архітектур. Характеризується тією чи іншою кількістю n «каналів» (ступенем асоціативності, «п-way») і може відображати вміст даного рядка пам'яті на кожен із n своїх рядків. Цей варіант є розумним компромісом між повністю асоціативним та кешем «прямого відображення».

У сучасних процесорах, як правило, використовується або кеш пам'ять з прямим відображенням, або двох-(чотирьох-) канальна множина асоціативна кеш пам'ять. Наприклад, в архітектурах К7 та К8 застосовується 16-канальний частково-асоціативний кеш L2.

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

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

  • випадкова (Random)- Блоки-кандидати вибираються випадково (рівномірний розподіл). У деяких системах використовують псевдовипадковий алгоритм заміщення;
  • заміщується той блок, який не використовувався найдовше (LRU - Least-Recently Used). У цьому випадку, щоб зменшити ймовірність видалення інформації, яка скоро може знадобитися, всі звернення до блоків фіксуються.

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

Алгоритми обміну з кеш пам'яттю (свопінгу)

включають такі різновиди:

  • алгоритм наскрізного запису (Write Through) чи наскрізного накопичення (Store Through);
  • алгоритм простого свопінгу (Simple Swapping) чи зворотного запису (Write Back);
  • алгоритм свопінгу з прапорами (Flag Swapping) або зворотний запис у конфліктних ситуаціях з прапорами (CUX);
  • алгоритм регістрового свопінгу із прапорами (FRS).

Алгоритм наскрізного запису

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

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

Алгоритм простого свопінгу

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

Алгоритм свопінгу з прапорами

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

Алгоритм реєстрового свопінгу з прапорами

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

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

Ієрархія пам'яті ЕОМ.Пам'ять ЕОМ повинна мати велику інформаційну ємність V, малий час обігу t (висока швидкодія), високу надійність та низьку вартість. Але зі збільшенням ємності знижується швидкодія та зростає вартість. Розподіл пам'яті на ОЗУ і ВЗУ не знімає це протиріччя повністю, оскільки різниця у швидкодії процесора, ОЗУ та ВЗУ дуже велика. Тому обміну інформацією проводиться через додаткові буферні пристрої, тобто пам'ять ЕОМ має ієрархічну багаторівневу структуру. Чим більша швидкодія ЗУ, тим вище вартість зберігання 1 байта, тим меншу ємність має ЗУ.

Ієрархія пам'яті ЕОМ:

· Регістри мікропроцесорної пам'яті, а також кеш-пам'ять першого і другого рівня t = 10-9-10-6 t = 10-9-10-6 с, V = 102-104 біт);

· Внутрішня пам'ять ПЗУ, ОЗУ t = 10-6-10-3 t = 10-6-10-3 с, V = 10-4-107 біт);

· Зовнішня пам'ять (t = 10-3-1 с, V = 107-109 біт);

· Масова або архівна пам'ять (t = 1-10 с, V = 109-1010 V = 109-1010 біт).

Ця система запам'ятовуючих пристроїв працює як єдине ЗУ з великою ємністю (за рахунок зовнішніх ЗП) та високою швидкодією (за рахунок внутрішніх ЗП).

Мікропроцесорна пам'ять- Високошвидкісна пам'ять невеликої ємності, що входить у МП і використовувана АЛУ для зберігання операндів та проміжних результатів обчислень. КЕШ-пам'ять-- це буферна, недоступна для користувача пам'ять, що автоматично використовується комп'ютером для прискорення операцій з інформацією, що зберігається в повільно діючих пристроях. Для прискорення операцій з основною пам'яттю організується реєстрова КЕШ-пам'ять усередині мікропроцесора (КЕШ-пам'ять першого рівня) або поза мікропроцесором на материнській платі (КЕШ-пам'ять другого рівня); Для прискорення операцій із дисковою пам'яттю організується КЕШ-пам'ять на осередках електронної пам'яті.

Внутрішня пам'ятьскладається з ПЗП (ROM - Read Only Memory) і ОЗП (RAM - Random Access Memory - пам'ять з довільним доступом). ПЗУ складається із встановлених на материнській платі мікросхем і використовується для зберігання незмінної інформації: завантажувальних програм операційної системи (ОС), програм тестування пристроїв комп'ютера та деяких драйверів базової системи вводу-виводу (BIOS - Base Input-Output System) та ін. можна лише зчитувати інформацію, ємність ПЗУ – сотні Кбайт. Це енергонезалежна пам'ять - при відключенні ЕОМ інформація зберігається.

Зовнішня пам'ятьвідноситься до зовнішніх пристроїв ЕОМ і використовується для довготривалого зберігання будь-якої інформації, яка може знадобитися. У ВЗП зберігається програмне забезпечення ЕОМ. Зовнішня пам'ять: НЖМД та ЖМД, НГМД та ГМД (магнітний диск), стример (НМЛ – накопичувач на магнітній стрічці), оптичні накопичувачі для CD-ROM та DVD-дисків.

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

Реєстр та регістровий вид пам'яті

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

Ієрархія пам'яті. Роль оперативної пам'яті. Багатозадачність.

Кеш пам'ять = надоперативна пам'ять

Відомо, що пам'ять ЕОМ призначена для зберігання програм та даних, причому ефективність роботи ЕОМ багато в чому визначається характеристиками її пам'яті. У всі часи до пам'яті пред'являлися три основні вимоги: великий обсяг, високий швидкодіята низька (помірна) вартість.

Всі перелічені вище вимоги до пам'яті є взаємно-суперечливими, тому поки що неможливо реалізувати один тип ЗУ, що відповідає всім названим вимогам. У сучасних ЕОМ організують комплекс різнотипних ЗУ, що взаємодіють між собою та забезпечують прийнятні характеристики пам'яті ЕОМ для кожного конкретного застосування.

I. Реєстрова пам'ять – місцева пам'ять процесора.

Відмінні риси:

2) Найменший час доступу

3)Велика вартість

4) Маленька ємність

"Регістри" (registers) - модулі, побудовані на тригерах.

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

У регістрах зберігаються операнди (числа (двійкові), які обробляє процесор, при виконанні поточної команди)

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

ІІ. Надоперативна пам'ять

СОЗУ має максимальну швидкодію (рівний процесорний), невеликий об'єм (10 5 - 10 7 байтів) і розташовується, як правило, на кристалі процесорної БІС. Для звернення до СОЗУ не потрібні магістральні цикли. У СОЗУ розміщуються найчастіше використовувані даному ділянці програми дані, котрий іноді - і фрагменти програми.

У обчислювальних системах використовують багаторівневий кеш

1. Кеш процесора 1го рівня (L1) - час доступу порядку кількох тактів, розміром десятки кілобайт

2. Кеш процесора 2го рівня (L2) - більший час доступу (від 2 до 10 разів повільніше за L1), близько півмегабайта або більше

3. Кеш процесора 3-го рівня (L3) – час доступу близько сотні тактів, розміром у кілька мегабайт (у масових процесорах використовується з недавнього часу)

У настільних системах зазвичай використовується дворівневий кеш,

у серверних – трирівневий.

Кеш служить високошвидкісним буфером між ЦП та відносно повільною основною пам'яттю.

ІІІ. Оперативна пам'ять

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

ОЗУ системи - час доступу від сотень до, можливо, тисячі тактів, але величезні розміри в кілька гігабайт, аж до десятків. Час доступу до ОЗУ може змінюватись для різних його частин у разі комплексів класу NUMA (з неоднорідним доступом на згадку)

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

Оперативна пам'ять

n В оперативної (внутрішньої) пам'ятікомп'ютера зберігаються дані та програми.

n Оперативна пам'ять є послідовністю пронумерованих, починаючи з нуля, осередків.

n У кожному осередку оперативної пам'яті може зберігатися двійковий код.

IV. Зовнішня пам'ять

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

Крім реалізації системи віртуальної пам'яті, зовнішні ЗУ використовуються для довготривалого зберігання програм і даних у вигляді файлів. Більшість операційних систем підтримують багатозадачність. Вони послідовно перемикають завдання одну на іншу. У кожний момент часу процесор виконує лише одну задачу. У багатопотокових процесорах одночасно можуть виконуватися кілька завдань. ОС планує яке із завдань виконуватиметься наступної, вибирає це завдання і перемикає контексти завдань. Методи перемикання залежить від стратегії, обраної ОС.

Енергонезалежна пам'ять = зовнішня пам'ять.

Запитання 17Ієрархія пам'яті. Роль оперативної пам'яті. Чим може бути обумовлено застосування віртуальної пам'яті. -

Роль оперативної пам'яті – ОЗУ призначене для зберігання змінної інформації; воно допускає зміну свого вмісту під час виконання обчислювального процесу. Таким чином, процесор бере з ОЗУ код команди і після обробки будь-яких даних результат назад поміщається в ОЗУ.

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

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

віртуальна пам'ять дозволяє модифікувати ресурси пам'яті, зробити обсяг оперативної пам'яті набагато більше,для того, щоб користувач, помістивши туди якомога більше програм, реально заощадив час і підвищив ефективність своєї праці.

18. Процесор ЕОМ. Його головні функціональні блоки. Основна функція блоку керування.

· Блок передвиборки

· Кеш-пам'ять

· Декодер (дешифратор)

· блок керування

· Контролер переривань

· Операційні пристрої АЛУ

· пристрої речової арифметики FPU

· пристрій управління пам'яттю

· інтерфейс

Основна функція блоку управління – генерування послідовності управляючих сигналів на основі операційних частин команд, що надходять.


ВСТУП

Головне завдання комп'ютерної системи – виконувати програми. Програми разом із даними, яких вони мають доступ, у процесі виконання повинні (принаймні частково) перебувати у оперативної пам'яті. Операційної системи доводиться вирішувати завдання розподілу пам'яті між процесами користувача і компонентами ОС. Ця діяльність називається управлінням пам'яттю. Таким чином, пам'ять (storage, memory) є найважливішим ресурсом, що вимагає ретельного керування.

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

В ідеалі кожному програмісту хотілося б мати надану тільки йому необмежену за обсягом та швидкістю роботи пам'ять, яка до того ж не втрачає свого вмісту при відключенні живлення. Якщо ми так розмріялися, то чому б не зробити пам'ять ще й зовсім дешевою? На жаль, існуючі технології поки що не можуть дати нам бажане. Тоді чим нам доведеться задовольнятися? Згодом була розроблена концепція ієрархії пам'яті, згідно з якою комп'ютери володіють кількома мегабайтами дуже швидкодіючої, дорогої та енергозалежної кеш-пам'яті, кількома гігабайтами пам'яті, середньою як за швидкістю, так і за ціною, а також кількома терабайтами пам'яті на досить повільних, порівняно дешевих накопичувачах, не кажучи вже про змінні накопичувачі, такі як DVD – диски та флеш – пристрої USB.

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

1 ІЄРАРХІЧНА СТРУКТУРА ПАМ'ЯТІ


Пам'ять ЕОМ повинна мати велику інформаційну ємність, малий час звернення (висока швидкодія), високу надійність та низьку вартість. Але зі збільшенням ємності знижується швидкодія та зростає вартість. Розподіл пам'яті на ОЗУ і ВЗУ не знімає це протиріччя повністю, оскільки різниця у швидкодії процесора, ОЗУ та ВЗУ дуже велика. Тому обміну інформацією проводиться через додаткові буферні пристрої, тобто пам'ять ЕОМ має ієрархічну багаторівневу структуру. Чим більша швидкодія ЗУ, тим вище вартість зберігання 1 байта, тим меншу ємність має ЗУ. Ієрархія пам'яті має такий вигляд (Рис. 1):

Малюнок 1 – Чотирирівнева організація пам'яті

Види пам'яті:

1) регістри мікропроцесорної пам'яті, а також кеш-пам'ять першого та другого рівня;

2) внутрішня пам'ять ПЗП, ОЗП;

3) зовнішня пам'ять;

4) масова чи архівна пам'ять.


Ця система запам'ятовуючих пристроїв працює як єдине ЗУ з великою ємністю (за рахунок зовнішніх ЗП) та високою швидкодією (за рахунок внутрішніх ЗП).

Мікропроцесорна пам'ять – високошвидкісна пам'ять невеликої ємності, що входить до МП і використовує АЛУ для зберігання операндів та проміжних результатів обчислень. КЕШ-пам'ять – це буферна, недоступна для користувача пам'ять, що автоматично використовується комп'ютером для прискорення операцій з інформацією, що зберігається в повільно діючих пристроях. Для прискорення операцій з основною пам'яттю організується реєстрова КЕШ-пам'ять усередині мікропроцесора (КЕШ-пам'ять першого рівня) або поза мікропроцесором на материнській платі (КЕШ-пам'ять другого рівня); Для прискорення операцій із дисковою пам'яттю організується КЕШ-пам'ять на осередках електронної пам'яті.

Внутрішня пам'ять складається з ПЗП (ROM – Read Only Memory) та ОЗП (RAM – Random Access Memory – пам'ять з довільним доступом). ПЗУ складається із встановлених на материнській платі мікросхем і використовується для зберігання незмінної інформації: завантажувальних програм операційної системи (ОС), програм тестування пристроїв комп'ютера та деяких драйверів базової системи вводу-виводу (BIOS – Base Input-Output System) та ін. лише зчитувати інформацію, ємність ПЗП – сотні Кбайт. Це енергонезалежна пам'ять – при відключенні ЕОМ інформація зберігається.

Зовнішня пам'ять відноситься до зовнішніх пристроїв ЕОМ і використовується для довготривалого зберігання будь-якої інформації, яка може знадобитися. У ВЗП зберігається програмне забезпечення ЕОМ. Зовнішня пам'ять: НЖМД та ЖМД, НГМД та ГМД (магнітний диск), стример (НМЛ – накопичувач на магнітній стрічці), оптичні накопичувачі для CD-ROM та DVD-дисків.

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


2 КЕШУВАННЯ

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

Кеш має сукупність рядків (cache-lines), кожна з яких складається з фіксованої кількості одиниць пам'яті, що адресуються, (байтів, слів) з послідовними адресами. Типовий розмір рядка: 16, 64, 128, 256 байтів.

Найчастіше використовуються три способи організації кеш-пам'яті, що відрізняються обсягом апаратури, необхідної для реалізації. Це так звані кеш-пам'ять із прямим відображенням (direct-mapped cache), частково асоціативна кеш-пам'ять (set-associative cache) та асоціативна кеш-пам'ять (fully associative cache).

При використанні кеш-пам'яті з прямим відображенням адреса представляється як набір трьох компонентів, що становлять групи старших, середніх та молодших розрядів адреси, відповідно до тега, номера рядка, усунення. Наприклад, при 16-розрядній адресі старші 5 розрядів можуть представляти тег, наступні 7 розрядів - номер рядка та останні 4 розряди - зміщення у рядку. У цьому випадку рядок складається з 16 одиниць пам'яті, що адресуються, всього рядків в кеші 128. Кеш-пам'ять з прямим відображенням являє собою набір рядків, кожна з яких містить компоненту тег і елементи пам'яті рядка, адреса яких ідентифікується зсувом щодо початку рядка. При цьому встановлюється однозначна відповідність між адресою елемента пам'яті та можливим розташуванням цього


елемента пам'яті в кеші, а саме: елемент пам'яті завжди розташовується в рядку, що задається компонентом номер рядка адреси, і знаходиться на позиції рядка, що задається компонентом зміщення адреси.

Наявність елемента даних за запитуваною адресою в кеші визначається значенням тега. Якщо тег рядка кеш-пам'яті дорівнює компоненті "тег" адреси, елемент даних міститься в кеш-пам'яті.

Інакше необхідне підкачування в кеш-пам'ять рядка із заданим на адресу тегом.

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

Недоліки цієї організації очевидні. Якщо програма використовує по черзі елементи пам'яті з одного рядка, але з різними значеннями тегів, це викликає при кожному зверненні заміну рядка з зверненням до даних основної пам'яті.

Асоціативна кеш-пам'ять використовує двокомпонентне подання адреси: група старших розрядів сприймається як тег, а група молодших розрядів - як усунення у рядку.

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

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

Частково-асоціативна кеш-пам'ять комбінує обидва вищеописані підходи: кеш-пам'ять складається з набору асоціативних блоків кеш-пам'яті. Середня компонента адреси задає на відміну від кеш-пам'яті, що прямо адресується, не номер рядка, а номер одного з асоціативних блоків. При пошуку даних асоціативне порівняння тегів виконується лише набору блоків (можлива організація кешу, коли таких наборів кілька), номер якого збігається із середньою компонентою адреси. За кількістю nрядків у наборі кеш-пам'ять називається n-вхідний.

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

ОРГАНІЗАЦІЯ пам'яті ЕОМ

В основі ієрархії пам'яті сучасних комп'ютерів лежать два принципи:

принцип локальності звернень;

Співвідношення вартість/продуктивність.

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

Ієрархія пам'яті сучасних комп'ютерів, представлена ​​малюнку 5.1, будується на кількох рівнях, причому вищий рівень менше за обсягом, швидше і має більшу вартість у перерахунку на байт, ніж нижчий рівень. Такий підхід оптимізує співвідношення вартість/продуктивність.

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

Рівні пам'яті, розташовані між регістровою та основною пам'яттю, прийнято називати кеш-пам'яттю. Блок кеш-пам'яті називається рядком(Line).

Хоча ієрархія пам'яті складається з багатьох рівнів, але в кожний момент ми маємо справу тільки з двома прилеглими рівнями. Успішне чи неуспішне звернення до вищого рівня називаються відповідно потраплянням (hit)або промахом (miss). Попадання означає, що блок пам'яті знайдено більш високому рівні, тоді як промах означає, що не знайдено цьому рівні. При промаху відбувається переміщення необхідного блоку більш високий рівень.

Частка влучень(hit rate) чи коефіцієнт попадань (hit ratio) є частка звернень, знайдених більш рівні (часто представляється відсотками). Частка промахів(miss rate) є частка звернень, які знайдено більш рівні.

Оскільки підвищення продуктивності є головною причиною появи ієрархії пам'яті, частка попадань та промахів є важливою характеристикою. Час звернення при попаданні (hit time) є час звернення до вищого рівня ієрархії, яке включає, зокрема, і час, необхідний визначення того, чи є звернення потраплянням чи промахом. Втрати на промах (miss penalty) є час для заміщення блоку більш високому рівні на блок з нижчого рівня плюс час для пересилання цього блоку в необхідний пристрій (зазвичай процесор). Втрати на промах включають два компоненти: час доступу (access time) – час звернення до першого слову блоку при промаху, і час пересилання (transfer time) – додатковий час для пересилання слів блоку, що залишилися. Час доступу пов'язаний із затримкою пам'яті нижчого рівня, у той час як час пересилання пов'язаний зі смугою пропускання каналу між пристроями пам'яті двох суміжних рівнів.



Щоб описати певний рівень ієрархії пам'яті, треба відповісти на наступні чотири питання:

1) Де може розміщуватись блок на верхньому рівні ієрархії? (Розміщення блоку).

2) Як знайти блок, коли він на верхньому рівні? (Ідентифікація блоку).

3) Який блок має бути заміщений у разі промаху? (Заміщення блоків).

4) Що відбувається під час запису? (стратегія запису).