Головна |
Кеш призначений для того, щоб наблизити швидкість доступу до пам'яті до максимально можливої, і в той же час забезпечити великий обсяг пам'яті за ціною більш дешевих типів напівпровідникової пам'яті. Ця концепція представлена ??на рис. 1.16. Отже, поряд з відносно великою і повільнішою основною пам'яттю у нас є кеш, що володіє меншою ємністю, але і меншим часом доступу. У кеші зберігається копія фрагмента основної пам'яті. Коли процесор намагається прочитати слово з пам'яті, виконується перевірка на наявність цього слова в кеші. Якщо воно там є, слово передається процесору. Якщо ж його там немає, в кеш зчитується блок основної пам'яті, що складається зі слів з певними адресами. Внаслідок локалізації звернень при зчитуванні в кеш блоку даних, що містить одне з необхідних слів, подальші звернення до даних з високою ймовірністю теж будуть виконуватися до слів з цього блоку.
На рис. 1.17 показана структура основної пам'яті і кеша. Основна пам'ять складається з 2n адресованих слів, кожне з яких характеризується своїм унікальним n-бітових адресою. Передбачається, що вся пам'ять складається з певної кількості блоків фіксованої довжини, в кожен з яких входить К слів. Таким чином, всього є М = 2n/ К блоків. Кеш складається з З слотів, по К слів в кожному. При цьому кількість слотів набагато менше кількості блоків (С « К)4. Деяку підмножину блоків основної пам'яті зберігається в слотах кеша. Якщо потрібно прочитати з пам'яті слово з якогось блоку, якого немає в кеші, то цей блок передається в один з слотів кеша. Через те, що блоків більше, ніж слотів, не можна закріпити за кожним блоком свій слот. Тому кожен слот повинен містити дескриптор, що ідентифікує що зберігається в ньому блок. У ролі дескриптора зазвичай виступає число, що складається з старших бітів адреси, і по ньому відбувається звернення до всіх адрес, які починаються цією послідовністю бітів.
Розглянемо простий приклад, в якому адреси складаються з шести бітів, а дескриптори - з двох. Дескриптор 01 вказує на те, що в слоті знаходиться блок, до якого входять такі адреси: 010000, 010001, 010010, 010011, 010100, 010101, 010110, 010111, 011000,011001, 011010, 011011, 011100, 011101, 011110, 011111.
На рис. 1.18 показана блок-схема операції читання слова з пам'яті. Процесор генерує адресу слова, яке потрібно прочитати. Якщо це слово зберігається в кеші, воно передається процесору. В іншому випадку блок, що містить це слово, завантажується в кеш, і слово передається процесору після завантаження блоку в кеш.
Огляд комп'ютерних систем | ОСНОВНІ ЕЛЕМЕНТИ | РЕГІСТРИ ПРОЦЕСОРА | Регістри, доступні користувачеві | Керуючі регістри і регістри стану | ВИКОНАННЯ КОМАНД | Вибірка і виконання команди | Функції вводу-виводу | Переривання і цикл команди | множинні переривання |