39;яті першого рівня, а потім - до кеш-пам'яті другого рівня. Якщо даних немає ні в однієї кеш-пам'яті, процесор звертається до оперативної пам'яті. І тільки в тому випадку, якщо потрібних даних немає і там, він зчитує дані з жорсткого диска.
Коли процесор виявляє дані в одному з кешей, це називають В«попаданнямВ»; невдачу називають В«промахомВ». Кожен промах викликає затримку, оскільки процесор буде намагатися виявити дані на іншому, більш повільному рівні. У добре спроектованих системах з програмними алгоритмами, які виконують попередню вибірку даних до того, як вони будуть потрібні, відсоток В«ВлученьВ» може досягати 90. p> Для процесорів старшого класу на отримання інформації з кеш-пам'яті першого рівня може піти від одного до трьох тактів, а процесор в цей час чекає і нічого корисного не робить. Швидкість доступу до даних з кеш-пам'яті другого рівня, що розміщується на процесорної плати, складає від 6 до 12 циклів, а у випадку з зовнішньої кеш-пам'яттю другого рівня - десятки або навіть сотні циклів.
Кеш-пам'ять для серверів навіть більш важлива, ніж для настільних ПК, оскільки сервери підтримують між процесором і пам'яттю вельми високий рівень трафіку, генерованого клієнтськими транзакціями. У 1991 році Intel перетворила ПК на базі процесора 80486 з тактовою частотою 50 МГц в сервер, додавши на процесорну плату кеш з тактовою частотою 50 МГц. Хоча шина, що зв'язує процесор і пам'ять, працювала з частотою всього 25 МГц, така кеш-пам'ять дозволила багато програми під час роботи повністю розміщувати в процесорі 486 з тактовою частотою 50 МГц.
Ієрархічна організація пам'яті допомагає компенсувати розрив між швидкостями процесорів, щорічно збільшуються приблизно на 50% на рік, і швидкостями доступу до DRAM, які ростуть лише на 5%. Як вважає Джон Шен, професор Університету Карнегі-Меллона, у міру посилення цього дисонансу виробники апаратного забезпечення додадуть третій, а можливо і четвертий рівень кеш-пам'яті.
Дійсно, вже в цьому році Intel має намір представити кеш-пам'ять третього рівня в своїх 64-розрядних процесорах Itanium. Кеш ємністю 2 або 4 Мбайт буде пов'язаний з процесором спеціальної шиною, тактова частота якої збігається з частотою процесора.
IBM також розробила власну кеш-пам'ять третього рівня для 32 - і 64-розрядних ПК-серверів Netfinity. За словами Тома Бредікіча, директора з питань архітектури та технологій Netfinity, спочатку кеш буде розміщуватися на мікросхемі контролера пам'яті, випуск якої почнеться до кінця наступного року.
Кеш-пам'ять третього рівня корпорації IBM стане загальносистемним кешем, куди зможуть звертатися від 4 до 16 процесорів сервера. З кеш-пам'яттю третього рівня Intel зможе працювати тільки той процесор, до якого вона підключена, але представники IBM підкреслили, що їх кеш третього рівня здатний збільшити пропускну здатність всієї системи. Бредікіч зазначив, що нова кеш-пам'ять виробництва IBM також допоможе реалізувати комп'ютерні системи високої готовності, необхідні для електронної комерції, оскільки з її допомогою можна буде змінювати модулі основної пам'яті і виконувати модернізацію, не перериваючи роботу системи.
Внутрішній кеш
В
Внутрішньо кешування звернень до пам'яті застосовується в процесорах, починаючи з 486-го. З кешуванням пов'язані нові функції процесорів, біти регістрів і зовнішні сигнали. p> Процесори 486 і Pentium мають внутрішній кеш першого рівня, в Pentium Pro і Pentium II є і вторинний кеш. Процесори можуть мати як єдиний кеш інструкцій і даних, так і загальний. Виділений кеш інструкцій зазвичай використовується тільки для читання. Для внутрішнього кеша зазвичай використовується набірний-асоціативна архітектура. p> Рядки в кеш-пам'яті виділяються тільки при читанні, політика запису перших процесорів 486 - тільки Write Through (наскрізна запис) - повністю програмно-прозора. Пізніші модифікації 486-го і всі старші процесори дозволяють перемикатися на політику Write Back (зворотний запис). p> Роботу кешу розглянемо на прикладі чотириканального набірний-асоціативного кеша процесора 486, його фізична структура наведена на рис.1. Кеш є несекторірованним - кожен біт достовірності (Valid bit) відноситься до цілої рядку, так що стоку не може бути "частково достовірної ".
Роботу внутрішньої кеш-пам'яті характеризують такі процеси: обслуговування запитів процесора на звернення до пам'яті, виділення і заміщення рядків для кешування областей фізичної пам'яті, забезпечення узгодженості даних внутрішнього кеша і оперативної пам'яті, управління кешуванням. p> Будь внутрішній запит процесора на звернення до пам'яті спрямовується на внутрішній кеш. Теги чотирьох рядків набору, який обслуговує цю адресу, порівнюються зі старшими бітами запитаного фізичної адреси. Якщо адресуемая область представлена ​​в рядку к...