ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6796
Скачиваний: 22
364
того рівня використано розділені кеш пам'яті даних і команд. В свою чергу, обидві кеш пам'яті першого рівня зв'язані з єдиною кеш пам'яттю другого рівня, яка взаємодіє з основною пам'яттю. Зрозуміло, що обмін в підсистемі "кеш пам'ять L2 - кеш пам'ять даних L1" є двостороннім, а в підсистемі "кеш пам'ять L2 - кеш пам'ять команд L1" - одностороннім.
Наведена структура ефективно поєднала риси Принстонської і Гарвардської архітектур. Такий підхід вигідніший, ніж побудова швидкої основної пам'яті без використання проміжної кеш пам'яті.
10.2.2. Порядок взаємодії процесора і основної пам'яті через кеш пам'ять
Основні правила організації кеш пам'яті та основної пам'яті, які забезпечують їх ефективну взаємодію, є наступними:
■ Кеш і основна пам'яті діляться на блоки однакового розміру, тобто вони можуть зміщувати однакову кількість слів.
-
Базовою порцією інформації, яка переміщується між основною та кеш пам'яттю, є вміст одного блоку
-
Кожний блок має свій номер.
■ Нумерація комірок в кожному блоці однакова.
■ В кожний момент часу в блоках кеш пам'яті знаходиться вміст декількох переписаних із основної пам'яті блоків.
■ Кожне
слово кеш пам'яті супроводжується
адресним тегом, що вказує на те, вміст
якого
блоку основної нам'яті є переписаним
до блоку кеш пам'яті, в якому
знаходиться
слово.
■ Ідентичність вмісту блоків кеш пам'яті та основної пам'яті забезпечується використанням спеціальних методів оновлення вмісту блоків основної пам'яті.
■ Заміна вмісту одних блоків в кеш пам'яті вмістом інших блоків з основної пам'яті здійснюється за правилами, які називають алгоритмом заміщення.
■ Між блоками основної пам'яті та кеш пам'яті встановлюється відповідність, яка задається функцією відображення.
Якщо дотримано вищеназваних правил, то взаємодія між процесором, кеш пам'яттю та основною пам'яттю відбувається наступним чином.
Процесор формує адреси для взаємодії з основною пам'яттю і не враховує наявність кеш пам'яті. Він видає адресу комірки основної пам'яті і сигнали запису або зчитування. Контролер кеш пам'яті визначає, чи вміст блоку з даною коміркою знаходиться в кеш пам'я-
365
ті. Якщо так (попадання), то при зчитуванні з процесором взаємодіє лише кеш пам'ять, а при записі для забезпечення ідентичності вмісту блоків кеш і основної пам'яті може бути два варіанти. При першому варіанті здійснюється одночасний запис операнда в комірку з тією ж адресою в кеш пам'яті та в основній пам'яті. При другому варіанті одночасний запис не здійснюється, а використовується біт модифікації. Саме ж заміщення вмісту даної комірки основної пам'яті відбувається пізніше, при заміщенні в кеш пам'яті вмісту даного блоку Оскільки питання забезпечення ідентичності вмісту блоків кеш пам яті та основної пам яті є важливим, в наступному пункті воно буде розглянуто детальніше
Якщо ж вміст блоку з заданою коміркою відсутній в кеш пам'яті (промах), то при зчитуванні він поступає із основної пам'яті в кеш пам'ять, а слово з заданої комірки поступає прямо в процесор, або після пересилки вмісту всього блоку. Перший підхід ефективніший але складніший. При операції запису в цьому випадку слово записується прямо в основну пам'ять
Таким чином, кеш пам'ять перехоплює сигнали читання/запису, які процесор надсилає до основної пам'яті, а коли потрібно, то надає процесору копії даних, які тимчасово зберігає у власній робочій пам'яті. Якщо кеш пам'ять спроможна підмінити собою основну пам'ять (у понад 96-98 відсотків випадків), тоді вона за рахунок власних ресурсів задовольняє запит процесора. Процесор не пригальмовується і продовжує працювати на повній швидкості. Коли "підміна" основної пам'яті неможлива (менше від двох-чо-тирьох відсотків випадків), тоді кеш пам'ять залучає до роботи основну пам'ять, обмін з якою суттєво пригальмовує процесор
Усі задачі, пов'язані з перехопленням запитів від процесора до основної пам'яті, вирішує контролер кеш пам'яті, який є її складовою частиною. Другою частиною кеш пам'яті є невелика робоча пам'ять, де зберігаються копії вмісту блоків основної пам'яті, що брали участь в обслуговуванні останніх запитів процесора
Важливо, що вміст комірок основної пам'яті копіюється до кеш пам'яті разом із їхніми адресами. Саме ці адреси і дозволяють контролеру кеш пам'яті приймати рішення про спроможність задовольнити конкретний процесорний запит без залучення до обміну повільної основної пам'яті
10.2.3. Забезпечення ідентичності вмісту блоків кеш пам'яті і основної пам'яті
Як ми вже бачили вище, в процесі обчислень процесор не лише зчитує з кеш пам'яті наявну інформацію, але і записує нову, оновлюючи тим самим вміст блоків кеш пам яті, які є копіями вмісту відповідних блоків основної пам'яті. Виникає ситуація, коли вміст блоку кеш пам яті та відповідного блоку основної пам яті перестають співпадати, що створює проблему необхідності фіксування та усунення цього неспівпадіння шляхом оновлення вмісту комірок основної пам'яті Для подолання цієї проблеми в комп'ютерах з кеш пам яттю використовуються два методи оновлення вмісту блоків основної пам яті: метод наскрізного запису і метод зворотного запису
За методом наскрізного запису перш за все оновлюється вміст комірки основної пам'яті. Якщо в кеш пам яті існує копія вмісту цієї комірки, то вона також оновлюється. Якщо ж в кеш пам'яті відсутня потрібна копія, то, або з основної пам'яті в кеш пам'ять пересилається вміст блоку, в якому знаходиться оновлене слово (наскрізний запис з відображенням), або цього не робиться (наскрізний запис без відображення).
366
Метод наскрізного запису, про який вище вже згадувалось, передбачає одночасний запис операнда в комірку з тією ж адресою як кеш, так і основної пам'яті. Основна перевага методу наскрізного запису полягає в тому, що коли вміст деякого блоку в кеш пам яті має бути заміщений, то його можна не повертати в основну пам'ять, оскільки його копія там вже є. Метод достатньо простий в реалізації. На жаль, ефект від використання кеш пам'яті (скорочення часу доступу) стосовно операцій запису тут відсутній. Даний метод застосований в мікропроцесорах i486 фірми Intel.
Певний виграш дає модифікація методу наскрізного запису, відома як метод буфе-ризованого наскрізного запису. Інформація спочатку записується в кеш пам ять і в спеціальний буфер, що працює за схемою FIFO. Запис в основну пам'ять проводиться вже з буфера, а процесор, не чекаючи її закінчення, може відразу ж продовжувати свою роботу. Звичайно, відповідна логіка керування повинна піклуватися про те, щоб своєчасно очищувати заповнений буфер. При використанні буферизації процесор повністю звільняється від роботи з основною пам'яттю
Згідно з методом зворотного запису, слово заноситься лише в кеш пам ять. Якщо вмісту потрібного блоку в кеш пам'яті немає, то він спочатку пересилається з основної пам яті, після чого запис все одно виконується виключно в кеш пам'ять. При заміщенні вмісту блоку його попередній вміст необхідно заздалегідь переслати у відповідне місце основної пам'яті. Для методу зворотного запису, на відміну від методу наскрізного запису, характерним є те, що при кожному зчитуванні з основної пам яті здійснюються два пересилання вмісту блоків між основною і кеш пам'яттю
Ефективність зворотного запису підвищується при використанні біта модифікації. Відповідно до методу зворотного запису з бітом модифікації, коли в якомусь блоці кеш пам яті проводиться заміщення вмісту, встановлюється пов'язаний з цим блоком біт модифікації (прапорець). При заміщенні вміст блоку з кеш пам яті переписується в основну пам'ять лише тоді, коли його біт модифікації встановлений в 1. Такий метод використовується, наприклад, в мікропроцесорах класу i486 і Pentium фірми Cyrix.
В середньому зворотний запис на 10 % ефективніший за наскрізний запис, але для його реалізації потрібні додаткові апаратні витрати. З іншого боку, практика показує, що операції запису складають менше 30 % від загальної кількості звернень до пам яті. Таким чином, відмінність за швидкодією між розглянутими методами невелика
Крім розглянутих вище методів забезпечення ідентичності вмісту блоків кеш пам яті та основної пам'яті існують й інші методи, пов'язані з тим, що пристрої введення/виведення можуть безпосередньо обмінюватися інформацією з основною пам яттю без участі процесора, а значить і кеш пам'яті. Тобто в основну пам ять з пристрою введення, минувши процесор, заноситься нова інформація і невірною стає копія, що зберігається в кеш пам'яті. Запобігти подібній неузгодженості дозволяють два підходи: забезпечити введення будь-якої інформації в основну пам'ять з проведенням відповідних змін в кеш пам яті, або здійснювати доступ до основної пам'яті лише через кеш пам'ять
10. 0.2.4. Функція відображення
10.2.4.1. Типи функцій відображення
Відображенням називають відповідність між вмістом блоків кеш пам'яті та блоків основної пам'яті.