Ієрархічна організація пам’яті ЕОМ

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

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

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

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

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

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

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

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

Мал. 3.1. Ієрархічна побудова пам'яті

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

Найшвидший, але і мінімальний по ємності тип пам'яті - це внутрішні регістри процесора, які іноді об'єднують поняттям сверхоператівное пристрій - СОЗУ. Кількість внутрішніх регістрів порівняно невелика, навіть в RISC-процесорах не перевищує декількох сотень. Оперативна пам'ять значно більшої місткості розташовується декількома рівнями нижче. Між ОП і регістрами розміщуються декілька рівнів кеш-пам'яті, яка по ємності істотно програє ОП, але значно перевершує її по швидкодії, поступаючись в той же час регістрів. Рівні кеш-пам'яті позначаються літерою L і номером рівня. Сучасні ЕОМ, як правило, мають два рівні кеш-пам'яті (див. Рис. 3.1), хоча в нових технологіях з'являється також третій рівень (L3), причому розробники говорять про доцільність запровадження і четвертого рівня L4. СОЗУ, кеш-пам'ять і ОП утворюють внутрішню пам'ять ЕОМ.

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

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

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

1. Є кілька ієрархічних рівнів зберігання організованою в блоки інформації.

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

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

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

Якщо, наприклад, пам'ять має дворівневу структуру - ОП і кеш-пам'ять, то Tеф можна записати у вигляді такої функції: