fers, допоміжні буфера перетворення). Своїм існуванням вони зобов'язані тому факту, що ЦП в роботі використовують переважно віртуальні адреси оперативної пам'яті, в той час як контролери оперативної та кеш-пам'яті працюють переважно з реальними адресами. Для того щоб не обчислювати при кожному зверненні до пам'яті реальний адреса з віртуального, у ЦП присутні таблиці відповідності віртуальних адрес сторінок пам'яті реальним. Як правило, їх обсяг невеликий (від одиниць до сотень записів), але цього цілком достатньо, оскільки часто запитувані дані або команди зазвичай добре локалізуються в межах сторінки пам'яті розміром 4 або 8 Кбайт. p> Що ж відбувається, якщо запитуваної реальної адреси будь-якої сторінки не знаходиться в TLB? A-box ЦП відпрацьовує спеціальний виклик (exception trap), на який ОС повинна адекватно відреагувати, тобто провести пошук потрібної сторінки в своїх таблицях підсистеми віртуальної пам'яті. Якщо в процесі пошуку виявиться, що зазначена сторінка знаходиться у файлі або розділі підкачки, то вона повинна негайно бути звідти лічена в оперативну пам'ять. У підсумку А-box ЦП отримає реальну адресу потрібної сторінки пам'яті і процес піде своїм шляхом. p> Варто також помітити, що єдиної схеми адресації записів кеш-пам'яті не існує. Тому залежно від ієрархічного розташування та цільового призначення даної структури кеш-пам'яті, а також ідей побудови певного ЦП може використовуватися вибірково як реальна, так і віртуальна адресація записів, або навіть гібридна схема (реальне тегування з віртуальною індексацією), що передбачає і відповідну організацію структури TLB.
Розділ 2
Організація кеш-пам'яті
Концепція кеш-пам'яті виникла раніше ніж архітектура IBM/360, і сьогодні кеш-пам'ять є практично в будь-якому класі комп'ютерів, а в деяких комп'ютерах - у множині. br/>В
Рис. 2. Типові значення ключових параметрів для кеш-пам'яті робочих станцій і серверів
Всі терміни, які були визначені раніше можуть бути використані і для кеш-пам'яті, хоча слово "рядок" (line) часто вживається замість слова "блок" (block). p> На малюнку 2 представлений типовий набір параметрів, який використовується для опису кеш-пам'яті. br/>
Розглянемо організацію кеш-пам'яті більш детально, відповідаючи на чотири питання про ієрархію пам'яті. br/>
1. Де може розміщуватися блок в кеш-пам'яті?
Принципи розміщення блоків в кеш-пам'яті визначають три основних типи їх організації:
Якщо кожен блок основної пам'яті має тільки одне фіксоване місце, на якому він може з'явитися в кеш-пам'яті, то така кеш-пам'ять називається кешем з прямим відображенням (direct mapped). Це найбільш проста організація кеш-пам'яті, при якій для відображення адрес блоків основної пам'яті на адреси кеш-пам'яті просто використовуються молодші розряди адреси блоку. Таким чином, всі блоки основної пам'яті, що мають однакові молодші розряди в своєму адресу, потрапляють в один блок кеш-пам'яті, тобто br/>
(адреса блоку кеш-пам'яті) =
(адреса блоку основної пам'яті) mod (число блоків в кеш-пам'яті)
Якщо деякий блок основної пам'яті може розташовуватися на будь-якому місці кеш-пам'яті, то кеш називається повністю асоціативним (fully associative). p> Якщо деякий блок основний пам'яті може розташовуватися на обмеженій множині місць в кеш-пам'яті, то кеш називається множинно-асоціативним (set associative). Зазвичай безліч являє собою групу з двох або більшої кількості блоків в кеші. Якщо безліч складається з n блоків, то таке розміщення називається множинно-асоціативним з n каналами (n-way set associative). Для розміщення блоку перш все необхідно визначити безліч. Безліч визначається молодшими розрядами адреси блоку пам'яті (індексом):
(адреса безлічі кеш-пам'яті) =
(адреса блоку основної пам'яті) mod (число множин в кеш-пам'яті)
Далі, блок може розміщуватись на будь-якому місці даної множини. br/>
Діапазон можливих організацій кеш-пам'яті дуже широкий: кеш-пам'ять з прямим відображенням є просто одноканальна множинно-асоціативна кеш-пам'ять, а повністю асоціативна кеш-пам'ять з m блоками може бути названа m-канальної множинно-асоціативної. У сучасних процесорах як правило використовується або кеш-пам'ять з прямим відображенням, або двох- (Чотирьох-) канальна множинно-асоціативна кеш-пам'ять. br/>
2. Як знайти блок, що знаходиться в кеш-пам'яті?
У кожного блоку в кеш-пам'яті є адресний тег, який вказує, який блок в основній пам'яті даний блок кеш-пам'яті представляє. Ці теги зазвичай одночасно порівнюються з виробленим процесором адресою блоку пам'яті. p> Крім того, необхідний спосіб визначення того,...