Ієрархія пам’яті, кешування
ЗМІСТ
Головне завдання комп'ютерної системи – виконувати програми. Програми разом із даними, яких вони мають доступ, у процесі виконання повинні (принаймні частково) перебувати у оперативної пам'яті. Операційної системи доводиться вирішувати завдання розподілу пам'яті між процесами користувача і компонентами ОС. Ця діяльність називається управлінням пам'яттю. Таким чином, пам'ять (storage, memory) є найважливішим ресурсом, що вимагає ретельного керування. [1]
В ідеалі кожному програмісту хотілося б мати надану тільки йому необмежену за обсягом та швидкістю роботи пам'ять, яка до того ж не втрачає свого вмісту при відключенні живлення. Якщо ми так розмріялися, то чому б не зробити пам'ять ще й зовсім дешевою? На жаль, існуючі технології поки що не можуть дати нам бажане. Тоді чим нам доведеться задовольнятися? Згодом була розроблена концепція ієрархії пам'яті, згідно з якою комп'ютери володіють кількома мегабайтами дуже швидкодіючої, дорогої та енергозалежної кеш-пам'яті, кількома гігабайтами пам'яті, середньою як за швидкістю, так і за ціною, а також кількома терабайтами пам'яті на досить повільних, порівняно дешевих накопичувачах, не кажучи вже про змінні накопичувачі, такі як DVD – диски та флеш – пристрої USB. [3]
Отже, як ми визначили, ієрархія пам'яті сучасних комп'ютерів будується кількох рівнях. У нашій роботі ми більш детально розглянемо ці рівні,їх структуру та функції.
1 ІЄРАРХІЧНА СТРУКТУРА ПАМ'ЯТІ
![]() |
Малюнок 1 – Чотирирівнева організація пам'яті
1) регістри мікропроцесорної пам'яті, а також кеш-пам'ять першого та другого рівня;
2) внутрішня пам'ять ПЗП, ОЗП;
3) зовнішня пам'ять;
4) масова чи архівна память.[3]
Ця система запам'ятовуючих пристроїв працює як єдине ЗУ з великою ємністю (за рахунок зовнішніх ЗП) та високою швидкодією (за рахунок внутрішніх ЗП).
Мікропроцесорна пам'ять – високошвидкісна пам'ять невеликої ємності, що входить до МП і використовує АЛУ для зберігання операндів та проміжних результатів обчислень. КЕШ-пам'ять – це буферна, недоступна для користувача пам'ять, що автоматично використовується комп'ютером для прискорення операцій з інформацією, що зберігається в повільно діючих пристроях. Для прискорення операцій з основною пам'яттю організується реєстрова КЕШ-пам'ять усередині мікропроцесора (КЕШ-пам'ять першого рівня) або поза мікропроцесором на материнській платі (КЕШ-пам'ять другого рівня); для прискорення операцій із дисковою пам'яттю організуєтьсяКЕШ-пам'ять на осередках електронної пам'яті.
Внутрішня пам'ять складається з ПЗП (ROM – Read Only Memory) та ОЗП (RAM – Random Access Memory – пам'ять з довільним доступом). ПЗУ складається із встановлених на материнській платі мікросхем і використовується для зберігання незмінної інформації: завантажувальних програм операційної системи (ОС), програм тестування пристроїв комп'ютера та деяких драйверів базової системи вводу-виводу (BIOS – Base Input-Output System) та ін. лише зчитувати інформацію, ємність ПЗП – сотні Кбайт. Це енергонезалежна пам'ять – при відключенні ЕОМ інформація зберігається.
Зовнішня пам'ять відноситься до зовнішніх пристроїв ЕОМ і використовується для довготривалого зберігання будь-якої інформації, яка може знадобитися. У ВЗП зберігається програмне забезпечення ЕОМ. Зовнішня пам'ять: НЖМД та ЖМД, НГМД та ГМД (магнітний диск), стример (НМЛ – накопичувач на магнітній стрічці), оптичні накопичувачі для CD-ROM та DVD-дисків. [4]
Найчастіше використовуються три способи організації кеш-пам'яті, що відрізняються обсягом апаратури, необхідної для реалізації. Це так звані кеш-пам'ять із прямим відображенням (direct-mapped cache), частково асоціативна кеш-пам'ять (set-associative cache) та асоціативна кеш-пам'ять (fully associative cache). [3]
Недоліки цієї організації очевидні. Якщо програма використовує по черзі елементи пам'яті з одного рядка, але з різними значеннями тегів, це викликає при кожному зверненні заміну рядка з зверненням до даних основної пам'яті.
За відсутності необхідного рядка в кеш-пам'яті один з його рядків має бути замінений на потрібний. Використовуються різноманітні алгоритми визначення рядка, що замінюється, наприклад циклічний, заміна рідко використовуваного рядка, замінарядки, до якої найдовше був звернень, та другие.[1]
Відповідність між даними в оперативній пам'яті та кеш-пам'яті забезпечується внесенням змін у ті області оперативної пам'яті, для яких дані в кеш-пам'яті зазнали модифікації. Відповідність даних забезпечується паралельно з основними обчисленнями. Існує кілька способів його реалізації (і відповідно кілька режимів роботи кеш-пам'яті).
Один спосіб передбачає внесення змін до оперативної пам'яті відразу після зміни даних у кеші. При цьому процесор простоює в очікуванні завершення запису на основну пам'ять. В основній пам'яті підтримується правильна копія даних кешу, і при заміні рядків не потрібні додаткові дії. Кеш-пам'ять, що працює в такому режимі, називається пам'яттю зі наскрізним записом (write – through).
Існують також проміжні варіанти (buffed write though), у яких запити зміну у основний пам'яті буферизуються і затримують процесор під час операції записи на згадку. Цей запис виконується в міру можливості доступу контролера кеш-пам'яті до основної пам'яті.
Кеш-пам'ять із зворотним записом (write-back) створює менше навантаження на шину процесора і забезпечує більшу продуктивність, проте контролер для write-back кешу значно складніший.
Міркування про те, який спосіб організації кеш-пам'яті кращий, повинні враховувати особливості генерації програм компілятором, а також використання програмістом при підготовці програми відомостей про роботу компілятора і контролера кеш-пам'яті. Тобто більш простий спосіб організації кеш-пам'яті, який підтримує компілятор, при виконанні програм, написаних відповідно до деяких правил, обумовленихособливостями компіляції та організації кеш-пам'яті може дати кращий результат, ніж складний спосіб організації кеш-пам'яті.
Оскільки області пам'яті програм і даних різні і до них відбувається одночасний доступ, то підвищення паралелізму під час роботи з пам'яттю роблять окремі кеші команд і даних. [4]
Ця робота була присвячена дослідженню питань ієрархії пам'яті та кешування. Нами були розглянуті рівні, структура та функції ієрархії пам'яті. Ми з'ясували, що ієрархічна побудова пам'яті комп'ютера дозволяє знизити вартість підсистеми пам'яті комп'ютера, оскільки ті дані, які потрібні частіше, зберігаються в швидкодіючій (і більш дорогій) пам'яті, тоді як великий обсяг даних, що рідко використовуються, можна зберігати в відносно дешевій зовнішній пам'яті. . Ієрархія пам'яті належить до особливостям архітектури комп'ютерів, які має значення підвищення їх продуктивності (згладжування різниці між швидкістю роботи процесора і часом вибірки з пам'яті). Основні рівні: регістри, кеш-пам'ять, оперативна пам'ять, дискова пам'ять. Час вибірки за рівнями пам'яті від дискової пам'яті до регістрів зменшується, вартість перерахунку на 1 слово (байт) зростає. В даний час подібна ієрархія підтримується навіть на персональних комп'ютерах.
А також розглянули принципи роботи та види кеш-пам'яті. Кеш – це пам'ять з більшою швидкістю доступу, призначена для прискорення звернення до даних, які постійно містяться в пам'яті з меншою швидкістю доступу (далі «основна пам'ять»). Кешування застосовується ЦПУ, жорсткими дисками, браузерами та веб-серверами. Основна ідея кеш-пам'яті проста: у ній є слова, які найчастіше використовуються. Якщо процесору потрібне якесь слово, спочатку він звертається до кеш-пам'яті. Тільки в тому випадку, якщо слова немає, він звертається до основної пам'яті. Якщо значна частина слів знаходиться в кеш-пам'яті, то середній час доступу значно скорочується.
Кеш складається із набору записів. Кожен запис асоційований з елементом даних або блоком даних (невелика частина даних), яка є копією елемента даних в основній пам'яті. Кожен запис має ідентифікатор, що визначає відповідність між елементами даних у кеші та їх копіями в основній пам'яті.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1 Майєр, Р.В. Кодування інформації. Принципи роботи ЕОМ. [Текст]/Навч. посіб. для вузів.// Р.В. Майєр - М.: ФАІР - ПРЕС, 2004. - 24 c.
2 Шнітман, В. Архітектура процесорів UltraSPARC. [Текст] / В. Шнітман / / Відкриті системи № 2, 1996. - c. 5
3 Таненбаум, Еге. Сучасні операційні системи. 3-тє вид. [Текст] / - СПб.: Пітер, 2002. - 1120 с.
4 Трофімова, І.П. Системи обробки та зберігання інформації: Навч. для вузів. [Текст]/І.П. Трофімова - М.: Вищ. шк., 1989. - 191 с.
5 Бікташев, Р.А. , Князьков, В.С. Багатопроцесорні системи. Архітектура, топологія, аналіз продуктивності: Навчальний посібник. [Текст]/– Пенза: Пенз. держ. ун-т, 2003. -105 с.
