ю адресою, і якщо є, то визначити, з якої адреси кеш-пам'яті починається цей блок. Цю інформацію ЦП отримує за допомогою механізму перетворення адрес.
Причини впровадження кеш-пам'яті
Явна потреба в кеш-пам'яті при проектуванні масових ЦП проявилася на початку 1990-х рр.., коли тактові частоти ЦП значно перевищили частоти системних шин, і, в Зокрема, шини пам'яті. В даний час частоти серверних ЦП досягають майже 4 ГГц, а оперативної пам'яті, масово застосовуваної в серверах, - тільки 400 МГц (200 МГц з подвоєнням завдяки передачі по обох фронтах сигналу). У цій ситуації при прямому зверненні до пам'яті функціональні пристрої ЦП значну частину часу простоюють, чекаючи доставки даних. У якійсь мірі проблеми швидкодії оперативної пам'яті можуть бути вирішені збільшенням розрядності шини пам'яті, але навіть в серверах молодшого рівня нерідко зустрічається 8-16 гнізд для модулів пам'яті, тому таке рішення ускладнює дизайн системної плати. Прокласти ж 256 - або навіть 512-біт шину до розташованої усередині кристала ЦП кеш-пам'яті порівняно нескладно. Таким чином, ефективної альтернативи кеш-пам'яті в сучасних високопродуктивних системах не існує. <В
Розділ 1
Що таке кеш-пам'ять?
Кеш-пам'ять - це високошвидкісна пам'ять довільного доступу, використовувана процесором комп'ютера для тимчасового зберігання інформації. Вона збільшує продуктивність, оскільки зберігає найбільш часто використовувані дані і команди В«ближчеВ» до процесора, звідки їх можна швидше отримати
Кеш-пам'ять безпосередньо впливає на швидкість обчислень і допомагає процесору працювати з більш рівномірної завантаженням. Уявіть собі масив інформації, використовуваної в вашому офісі. Невеликі обсяги інформації, необхідної в першу чергу, скажімо список телефонів підрозділів, висять на стіні над вашим столом. Точно так само ви зберігайте під рукою інформацію за поточними проектами. Рідше використовувані довідники, наприклад, міська телефонна книга, лежать на полиці, поруч з робочим столом. Література, до якої ви звертаєтеся зовсім рідко, займає полиці книжкової шафи.
Комп'ютери зберігають дані в аналогічній ієрархії. Коли додаток починає працювати, дані і команди переносяться з повільного жорсткого диска в оперативну пам'ять довільного доступу (Dynamic Random Access Memory - DRAM), звідки процесор може швидко їх отримати. Оперативна пам'ять виконує роль кеша для жорсткого диска.
Для досить швидких комп'ютерів (наприклад, на основі intel-80386 з тактовою частотою більш 25 Мгц чи intel-80486) необхідно забезпечити швидкий доступ до оперативної пам'яті, інакше мікропроцесор буде простоювати і швидкодія комп'ютера зменшиться. Для цього такі комп'ютери можуть оснащуватися кеш-пам'яттю, тобто "СверхоператівнойВ« пам'яттю відносно невеликого обсягу (зазвичай від 64 до 256 кбайт), в якій зберігаються найбільш часто використовувані ділянки оперативної пам'яті. Кеш-пам'ять розташовується "між" мікропроцесором і оперативною пам'яттю, і при звертанні мікропроцесора до пам'яті спочатку виробляється пошук потрібних даних у кеш-пам'яті. Оскільки час доступу до кеш-пам'яті в кілька разів менше, ніж до звичайної пам'яті, а в більшості випадків необхідні мікропроцесору дані містяться в кеш-пам'яті, середній час доступу до пам'яті зменшується. Для комп'ютерів на основі intel-80386dx або 80486sx розмір кеш-пам'яті в 64 кбайт є задовільним, 128 кбайт - цілком достатнім. Комп'ютери на основі intel-80486dx і dx2 зазвичай оснащуються кеш-пам'яттю ємністю 256 кбайт.
Рівень за рівнем
Хоча оперативна пам'ять набагато швидше диска, тим не менш і вона не встигає за потребами процесора. Тому дані, які потрібні часто, переносяться на наступний рівень швидкої пам'яті, званої кеш-пам'яттю другого рівня. Вона може розташовуватися на окремій високошвидкісний мікросхемі статичної пам'яті (SRAM), встановленої в безпосередній близькості від процесора (у нових процесорах кеш-пам'ять другого рівня інтегрована безпосередньо в мікросхему процесора.
На більш високому рівні інформація, яка використовується найчастіше (скажімо, команди в багато разів виконуваному циклі), зберігається в спеціальній секції процесора, званої кеш-пам'яттю першого рівня. Це найшвидша пам'ять. p> Процесор Pentium III компанію Intel має кеш-пам'ять першого рівня ємністю 32 Кбайт на мікросхемі процесора і або кеш-пам'ять другого рівня ємністю 256 Кбайт на мікросхемі, або кеш-пам'ять другого рівня ємністю 512 Кбайт, що не інтегровану з процесором.
Коли процесору потрібно виконати команду, він спочатку аналізує стан своїх регістрів даних. Якщо необхідних даних в регістрах немає, він звертається до кеш-пам...