Кеш-пам'ять сучасних мікропроцесорів фірмIntelіAMD

Реферат з питань дисципліни: "Основи побудови комп'ютерів" виконав Р.Великанов.

Інститут Транспорту та Зв'язку

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

Економічно прийнятне вирішення цієї проблеми можливе при використанні дворівневої пам'яті, коли між основною пам'яттю та процесором розміщується невелика, але швидкодіюча буферна пам'ять або кеш-пам'ять. Разом з основною пам'яттю вона входить в ієрархічну структуру та її дію еквівалентно швидкому доступу до основної пам'яті. Використання кеш-пам'яті дозволяє уникнути повного заповнення всієї машини швидкою пам'яттю RAM. Зазвичай програма використовує пам'ять якоїсь обмеженої області, зберігаючи потрібну інформацію в кеш-пам'яті, робота з якою дозволяє процесору обходитися без будь-яких циклів очікування. У великих універсальних ЕОМ, основна пам'ять яких має ємність близько 1-32 Гбайт, зазвичай використовують кеш-пам'ять ємність 1-12 Мбайт, тобто. ємність кеш-пам'ять становить близько 1/100-1/500 ємності основної пам'яті, а швидкодія в 5-10 разів вища за швидкість основної пам'яті. Вибір обсягу кеш-пам'яті – завжди компроміс між вартісними показниками ( порівняно з ВП ) та її ємністю, яка має бути досить великою, щоб середнєчас доступу в системі, що складається з основної та кеш-пам'яті, визначалося часом доступу до останньої. Реальна ефективність використання кеш-пам'яті залежить від характеру завдань і неможливо визначити заздалегідь, який обсяг її буде дійсно оптимальним.

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

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

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

Залежно від способу розміщення даних основної пам'яті в кеш-пам'яті існує три типи кеш-пам'яті:

кеш із прямим відображенням (розміщенням);

повністю асоціативний кеш;

множинний асоціативний кеш або частково асоціативний.

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

Множинно-асоціативний тип або частково-асоціативний тип відображення – це один із можливих компромісів, що поєднує переваги прямого та асоціативного способів. Кеш-пам'ять (і тегів і даних) розбивається на кілька модулів. Залежність між модулем та блоками ОП така ж жорстка, як і при прямому відображенні. А ось розміщення блоків по рядках модуля довільне і для пошуку потрібного рядка в межах модуля використовується асоціативний принцип. Цей спосіб відображення найпоширеніший у сучасних мікропроцесорах.

Відображення секторів ОП в кеш-пам'яті.

Цей тип відображення застосовується у всіх сучасних ЕОМ і у тому, що вся ВП розбивається на сектори, які з фіксованого числа послідовних блоків. Кеш-пам'ять також розбивається на сектори, що містять таку кількість рядків. Розташування блоків у секторі ВП та секторі кешу повністю збігається. Відображення сектора на кеш-пам'ять здійснюється асоціативно, будь-який сектор з ВП може бути поміщений в будь-який сектор кешу. Таким чином, в процесі роботи АЛУ звертається в пошуках чергової команди до ВП, в результаті чого, в кеш завантажується (у разі відсутності там блоку, що містить цю команду), цілий сектор інформації з ВП, причомупринцип локальності, за рахунок цього досягається значне збільшення швидкодії системи.

Змішана та розділена кеш-пам'ять.

Внутрішня кеш-пам'ять використовувалася раніше як інструкцій (команд), так даних. Така пам'ять називалася змішаною, а її архітектура – ​​Прінстонською, в якій в єдиній кеш-пам'яті, відповідно до класичних принципів фон Неймана, зберігалися і команди та дані.

Порівняно недавно стало звичайним розділяти кеш-пам'ять на дві – окремо для інструкцій та окремо для даних.

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

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

Так, наприклад, у процесорі Intel® 486 DX2 застосовувалася змішана кеш-пам'ять,

Альтернативою, що широко застосовується в даний час, є друга (зовнішня) кеш-пам'ять більшого обсягу, розташована між внутрішньою кеш-пам'яттю та ВП. У цій дворівневій системі кеш-пам'яті внутрішньої пам'яті відводиться роль першого рівня L1, а зовнішньої - другого L2. ємність L2 зазвичай на порядок і більша, ніж L1, а швидкодія та вартість нижча. Пам'ять другогорівня також будується зазвичай, як статичне ОЗУ. Місткість її може становити від 256 Кбайт до 1 Мбайта і технічно реалізується як у вигляді окремої мікросхеми, проте може розміщуватися і на одному кристалі з процесором.