Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Повністю асоціативне відображення

Поиск

Взаємодія основної пам’яті з кеш пам’яттю з використанням повністю асоціативного відображення показана нарис. 10.8 а.

 

Відповідно до цього типу відображення вміст будь-якого блоку основної пам’яті може знаходитись в будь-якому блоці кеш пам’яті. При використанні асоціативного ві­дображення адреса, яка поступає з процесора до основної пам’яті, ділиться-на два поля: поле тега і поле слова (рис. 10.8 Ь). Вміст поля тега вказує адресу блоку в основній пам’я­ті. Розрядність цього поля рівна k = log2K, де К - кількість блоків в основній пам’яті. А вміст поля слова вказує адресу слова в блоці. Розрядність цього поля рівна m = log^M, де М - кількість слів в блоці.

При даному способі відображення кожен рядок кеш пам’яті вміщує наступну інфор­мацію: тег, який вказує вміст якого блоку основної пам’яті переписано до даного блоку кеш пам’яті, розряд достовірності (valid bit V), який вказує, чи вміст даного блоку кеш пам’яті дійсно належить вказаному тегом блоку основної пам’яті, розряд модифікації (dirty bit D), який інформує про внесення змін до вмісту блоку кеш пам’яті, а також вміст вказаного тегом блоку основної пам’яті. Використання розряду модифікації пов’язано з тим, що вміст блоку в кеш пам’яті може змінюватись. Тому, якщо він не змінився, немає необхідності переписувати його назад до основної пам’яті, так як там вже є копія. Якщо ж змінився, потрібно переписати. Тому для фіксації змін в блоках кеш пам’яті до ряд­ка кеш пам’яті і вводиться розряд модифікації D, який дозволяє суттєво зменшити час обміну. Коли процесору потрібний операнд із блоку з певною адресою, контролер кеш пам’яті повинен шукати його шляхом порівняння відповідних розрядів адреси з тегами всіх блоків кеш пам’яті. Якщо таке порівняння здійснювати послідовно, то кеш пам’ять втрачає зміст через низьку швидкодію. Доцільніше таке порівняння робити одночасно зі всіма тегами, як це показано на рис. 10.9. В цьому випадку кожен блок кеш пам’яті повинен містити свій компаратор, тобто це буде пам’ять з асоціативним доступом. При наявності в кеш пам’яті відповідного тега, та при одиничному значенні розряду досто­вірності, кеш пам’ять видає сигнал підтвердження попадання та надає доступ до відпо­відного блоку.

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

Пряме відображення

Взаємодія основної пам’яті з кеш пам’яттю з використанням прямого відображен­ня показана на рис. 10.10а. Тут вміст кожного блоку основної пам’яті можна копіюва­ти лише до наперед визначеного блоку кеш пам’яті Одна з можливих реалізацій ви­користовує розрядне відображення. Тут додатково до того, як це було зроблено для асоціативного відображення, к-розрядне поле адреси блоку в основній пам’яті розби­вається на дві частини: поле тега г та поле номера блоку в (рис. Ю.ЮЬ). Тим самим основна пам’ять ділиться на секції, за кожною з яких закріплюється відповідна бирка (або ознака), яку називають тегом. Кількість Я секцій (а значить і кількість тегів) рівна відношенню ємності основної пам’яті до ємності кеш пам’яті, або, що є тим самим, відношенню кількості К блоків в основній пам’яті, до кількості Б блоків в кеш пам’яті. Розрядність поля тега визначається з виразу г = ^,К/5 - (2к/2*) = к - з. Кількість Б блоків в кожній секції рівна кількості блоків в кеш пам’яті. Тобто ємність секції рівна ємності кеш пам’яті.

Наприклад, якщо в адресі блоку основної пам’яті присутні к розрядів, то молодші п з них вибирають, в який блок кеш пам’яті може копіюватись вміст блоку основної пам’яті. Отже, вміст всіх блоків з однаковими молодшими адресами потрапляє в один і той са­мий блок кеш пам’яті. Інші г=к-з розрядів адреси, що залишилися, використовуються як адресний тег, який використовується для порівняння з адресою, виданою процесором з метою пошуку номера секції в основній

Для наведеної вище умови, коли що основна пам ять має ємність 1 ГБ, а кеш пам ять -

16 КБ, вони поділені на блоки ємністю по 32 Б, тобто кількість блоків в основній пам’яті рівна 225, а в кеш пам’яті - 29, маємо: повна розрядність адреси п = ЗО, причому поле адреси блоків основної пам’яті займає к = 25 розрядів, поле номера тега (тобто номера секції в основній пам’яті) г - 16 розрядів, поле номера блоку в секції (в кеш пам’яті) п = 9 розрядів, поле адреси слова в блоці т = 5 розрядів (рис. ІО.ІОЬ). Зауважимо, що процесор не сприймає структурної інтерпретації адреси, наведеної на рис. ІО.ІОЬ. Таку інтерпретацію адресі надає лише контролер кеш пам’яті, коли перехоплює цю адресу, що призначена основній пам’яті (в гарвардській архітектурі це може бути як пам’ять даних, так і пам’ять команд). Контролер кеш пам’яті за допомогою дев’яти середніх роз­рядів слова адреси звертається до визначеного цими розрядами блоку власної пам’яті. Зрозуміло, що шуканий в такий спосіб блок завжди присутній в кеш пам’яті. Адже кеш пам’ять вміщує 512 блоків. Але вміст віднайденого блоку кеш пам’яті може бути копією не одного, а одного з декількох дозволених на копіювання блоків основної пам’яті. На­приклад, до нульового блоку кеш пам’яті дозволено копіювати вміст наступних блоків основної пам’яті: 0, 128, 256, 512 і т. д. Усього до кожного блоку кеш пам’яті можна ско­піювати вміст одного з 216 = 65536 блоків основної пам’яті, оскільки ємність основної пам’яті в 65536 разів перевищує ємність кеш пам’яті. Постає завдання визначити, чи є поточне наповнення вказаного блоку кеш пам’яті відповідним до запиту процесора. За­вдання розв’язують за допомогою вмісту старших 16 бітів адреси основної пам’яті, які утворюють поле із назвою Тег

Основною перевагою тут є те, що кеш пам’ять має структуру звичайної пам’яті з до­вільним доступом, тому потрібен лише один компаратор (рис. 10.11).

 

При даному способі відображення кожен рядок кеш пам’яті вміщує наступну інфор­мацію: тег, який вказує вміст блоку з якої секції основної пам’яті переписано до даного блоку кеш пам’яті, розряд достовірності (valid bit V), який вказує чи вміст даного блоку кеш пам’яті дійсно належить блоку основної пам’яті, вказаному s розрядами поля адре­си, розряд модифікації (dirty bit D), який інформує про внесення змін до вмісту блоку кеш пам’яті, а також вміст блоку основної пам’яті, вказаного s розрядами поля адреси. Коли процесору потрібний операнд із блоку з певною адресою, контролер кеш пам’яті вибирає з пам’яті тегів відповідний номеру блоку в кеш пам’яті тег, та порівнює його з відповідними г розрядами адреси, в яких вказано тег. При наявності в кеш пам’яті від­повідного тега та при одиничному значенні розряду достовірності кеш пам’ять видає сигнал підтвердження попадання та надає доступ до відповідного блоку

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



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 225; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.143.21 (0.008 с.)