КЕШ пам'ять із прямим розподілом
Мета роботи: Вивчення принципу побудови кеш-пам'яті з прямим розподілом.
Введення
Кеш-пам'ять - це швидкодіюча пам'ять, розташована між центральним процесором і основною пам'яттю. Разом з основною пам'яттю вона входить в ієрархічну структуру і її дію еквівалентно швидкому доступу до основної пам'яті. У великих універсальних ЕОМ, основна пам'ять яких має ємність близько 32-64 Мбайт, зазвичай використовується кеш-пам'ять ємність 64-256 Кбайт, тобто ємність кеш-пам'яті складає близько 1/1000-1/500 ємності основної пам'яті, а швидкодія в 5-10 разів вища швидкодії основної пам'яті.
Кеш-пам'ять, що складається з m слів, зберігає копії не менше ніж m-слів з усіх слів основної пам'яті.
Якщо копія, на адресу якої був виконаний доступ ЦП, що існує в кеш-пам'яті, то зчитування завершується вже під час доступу до кеш-пам'яті. Відзначимо, що використання кеш-пам'яті грунтується на принципах просторової і тимчасової локальності. У випадку просторової локальності основна пам'ять розбивається на блоки з фіксованим числом слів і обмін даними між основною пам'яттю і кеш-пам'яттю виконується блоками. При доступі до деякого адресою центральний процесор повинен спочатку визначити чи містить кеш-пам'ять копію блоку за вказаною адресою, і якщо є, то визначити, з якого адреси кеш-пам'яті починається цей блок. Цю інформацію ЦП отримує за допомогою механізму перетворення адрес.
Про складність цього механізму істотний вплив робить стратегія розміщення, що визначає, в яке місце кеш-пам'яті слід помістити кожен блок з основної пам'яті.
Залежно від способу розміщення даних основної пам'яті в кеш-пам'яті передбачено три типи кеш-пам'яті:
кеш з прямим відображенням (розміщенням);
повністю асоціативний кеш;
множинний асоціативний кеш.
Кеш з прямим відображенням (розміщенням) є найбільш простим типом буфера. Адреса пам'яті однозначно визначає рядок кеша, в яку буде поміщений блок інформації. При цьому передбачається, що оперативна пам'ять розбита на блоки і кожному такому блоку в буфері відводиться всього один рядок.
Розглянемо механізм кеш-пам'яті з прямим відображенням реалізований в лабораторній роботі.
Стратегія розміщення та механізм перетворення адрес в кеш-пам'яті з прямим відображенням.
Припустимо, що основна пам'ять має ємність 256 До слів. Для адресації основної пам'яті використовується 18 біт. Нехай розмірність блоку становить 16 слів, тоді основна пам'ять міститиме 16384 блоку. Вісімнадцять розрядів адреси основної пам'яті тоді можна розподілити наступним чином - 14 старших розрядів використовувати для адресації блоку, а 4 молодших - для адресації слова у блоці.
Нехай ємність кеш-пам'яті дорівнює 2 До слів. Тоді кількість блоків в кеш становить 128. На рис.5 наведена спрощена функціональна схема кеш-пам'яті.
Для того, щоб помістити в кеш-пам'ять з основної пам'яті блок з адресою b 4n 0 цю адресу ділити на дві частини:
-молодші сім розрядів адреси блоку використовується для адре сації місця зберігання блоку в кеш-пам'яті;
-старші сім розрядів (часто називають їх "тег") поміщають в спеціальну пам'ять (тегів пам'ять), яка використовується в сел ледствіі для читання з кеш-пам'яті.
Таким чином, якщо адреса блоку основної пам'яті дорівнює 3673 -> 111001011001, то в кеш-пам'яті цей блок буде розміщений за адресою 89 -> 1011001.
У даному випадку за цією адресою може бути розміщений будь-який з 128 блоків, що мають сім молодших розрядів, еквівалентних числа 89 (1011001).
У цьому полягає один з недоліків кеш-пам'яті з прямим відображенням.
Для того щоб визначити, який саме блок знаходиться в кеш-пам'яті використовується спеціальна пам'ять (тегів пам'ять) ємністю 7 * 128 слів, куди містяться сім старших розрядів адреси блоку, що зберігається в даний час в кеш-пам'яті. Адреса розміщення яких визначається сім'ю молодшими розрядами (у нашому прикладі 89 (1011001)). При доступі до кеш-пам'яті молодші сім розрядів адреси блоку використовується в якості адреси тегів пам'яті, звідки зчитується значення тега (сім старших розрядів адреси блоку). Якщо лічений тег і що надійшли сім старших розрядів блоку збігаються, то це означає, що потрібний блок зберігається в кеш-пам'яті і з пам'яті даних виконується читання слова, адреса якого вказана в чотирьох молодших розрядах повної адреси.
Висновок: Дана лабораторна робота проведена відповідно до методичним вказівкою, представленим у вигляді текстового файлу в додатку до навчальної програми. На даній лабораторній роботі я вивчив принципи побудови КЕШ - пам'яті з прямим розподілом. Весь процес навчання проводився за допомогою програми розташованої на ЕОМ.