Зміст статті
1. Що таке кеш-пам'ять процесора. 2. Будова кеш-пам'яті процесора: • контроллер кеш-пам'яті; • рівні кеша L1, L2, L3. 3. Вплив кеш-пам'яті на швидкодію: • який кеш кращий: двох- чи трирівневий? • як впливає розмір кеша на швидкодію? • як дізнатися розмір кеша процесора? • чи можна збільшити кеш-пам'ять?Що таке кеш-пам'ять процесора
Вирішуючи будь-яке завдання, процесор комп'ютера отримує з оперативної пам'яті необхідні блоки інформації. Обробивши їх, він записує в пам'ять результати обчислень і отримує для обробки наступні блоки. Це триває, поки завдання не буде виконано. Усі згадані операції проводяться на дуже високій швидкості. Проте, навіть найшвидша оперативна пам'ять працює повільніше будь-якого "неквапливого" процесора. Кожне зчитування з неї інформації і зворотний її запис займають багато часу. В середньому, швидкість роботи оперативної пам'яті у 16 - 17 разів нижча від швидкості процесора. Не дивлячись на такий дисбаланс, процесор не простоює і не чекає щоразу, коли оперативна пам'ять "видає" або "приймає" дані. Він майже завжди працює на максимальній швидкості. І усе завдяки наявності у нього кеш-пам'яті. Кеш-пам'ять процесора - це невелика, але дуже швидка пам'ять. Вона вмонтована в процесор і є своєрідним буфером, який згладжує перебої у обміні даними з повільнішою оперативною пам'яттю. Кеш-пам'ять часто називають надоперативною пам'яттю. Кеш потрібний не лише для вирівнювання дисбалансу швидкості. Процесор обробляє дані дрібнішими порціями, ніж ті, в яких вони зберігаються в оперативній пам'яті. Тому кеш-пам'ять відіграє ще й роль своєрідного місця для "перепаковування" і тимчасового зберігання інформації перед її передачею процесору, а також поверненням результатів обробки в оперативну пам'ять.
Будова кеш-пам'яті процесора
Система кеш-пам'яті процесора складається з двох блоків - контроллера кеш-пам'яті і власне самої кеш-пам'яті.
Контроллер кеш-пам'яті
Контроллер кеш-пам'яті - цей пристрій, який керує вмістом кеша, отриманням необхідної інформації з оперативної пам'яті, передачею її процесору, а також поверненням в оперативну пам'ять результатів обчислень. Коли ядро процесора звертається до контроллера за якимись даними, той перевіряє, чи є ці дані в кеш-пам'яті. Якщо це так, ядру вмить віддається інформація з кеша (відбувається так зване кеш-попадання). Інакше ядру доводиться чекати надходження даних з повільної оперативної пам'яті. Ситуація, коли в кеші не виявляється потрібних даних, називається кеш-промахом. Завдання контроллера - зробити так, щоб кеш-промахи відбувалися якомога рідше, а в ідеалі - щоб їх не було взагалі. Розмір кеша процесора у порівнянні з розміром оперативної пам'яті дуже малий. У ньому може знаходитися лише копія крихітної частини даних, які зберігаються в оперативній пам'яті. Але, не дивлячись на це, контроллер допускає кеш-промахи не часто. Ефективність його роботи визначається кількома чинниками: • розміром і структурою кеш-пам'яті (чим більше ресурсів має у своєму розпорядженні контроллер, тим нижчою є вірогідність кэш-промаху); • ефективністю алгоритмів, за якими контроллер визначає, яка саме інформація знадобиться процесору в наступний момент часу; • складністю і кількістю завдань, які одночасно вирішуються процесором. Чим складнішими є завдання і чим їх більше, тим частіше "помиляється" контроллер.Кеш-пам'ять процесора
Кеш-пам'ять процесора виготовляють у вигляді мікросхем статичної пам'яті (англ. Static Random Access Memory, скорочено - SRAM). У порівнянні з іншими типами пам'яті, статична пам'ять має дуже високу швидкість роботи.
Вперше кеш розміром 8 KB був вмонтований в процесор Intel i486
у 1989 р.
Вплив кеш-пам'яті процесора на швидкодію комп'ютера
При виконанні запиту на надання даних ядру, контроллер пам'яті шукає їх спочатку в кеші першого рівня, потім - в кеші другого і третього рівнів. За статистикою, кеш-пам'ять першого рівня будь-якого сучасного процесора забезпечує до 90 % кэш-попадань. Другий і третій рівні - ще 90% від того, що залишилося. І лише близько 1 % усіх запитів процесора закінчуються кэш-промахами. Вказані показники стосуються простих завдань. З підвищенням навантаження на процесор кількість кэш-промахів зростає. Ефективність кеш-пам'яті процесора зводить до мінімуму вплив швидкості оперативної пам'яті на швидкодію комп'ютера. Наприклад, комп'ютер однаково добре буде працювати з оперативною пам'яттю 1066 Мгц і 2400 Мгц. За інших рівних умов різниця продуктивності у більшості програм не перевищить 5%.
Намагаючись оцінити ефективність кеш-пам'яті, користувачі найчастіше шукають відповіді на наступні питання:
Яка структура кеш-пам'яті краща: двох- чи трирівнева?
Трирівнева кеш-пам'ять ефективніша. Щоб визначити, як сильно L3 впливає на роботу процесора, сайтом Tom's Hardware був проведений експеримент. Полягав він у вимірюванні продуктивності процесорів Athlon II X4 і Phenom II X4. Обидва процесори оснащені однаковими ядрами. Перший відрізняється від другого лише відсутністю кеш-пам'яті L3 і нижчою тактовою частотою. Привівши частоти обох процесорів до однакового показника, було встановлено, що наявність кеш-пам'яті L3 підвищує продуктивність процесора Phenom на 5,8 %. Це середній показник. У одних програмах він майже дорівнював нулю (офісні програми), в інших - досягав 8% і навіть більше (комп'ютерні 3D ігри, архіватори та ін.).Як впливає розмір кеша на продуктивність процесора?
Оцінюючи розмір кеш-пам'яті, треба враховувати характеристики процесора і коло вирішуваних ним завдань. Кеш-пам'ять двоядерного процесора рідко перевищує 3 MB. Тим більше, якщо його тактова частота нижча ніж 3 Ггц. Виробники прекрасно розуміють, що подальше збільшення розміру кеша такого процесора не принесе росту продуктивності, проте істотно підвищить його вартість. Інша справа високочастотні 4-, 6 - або навіть 8-миядерні процесори. Деякі з них (наприклад, Intel Core i7) підтримують технологію Hyper Threading, яка забезпечує одночасне виконання кожним ядром двох завдань. Звичайно ж, потенціал таких процесорів не може бути розкритий з маленьким кешом. Тому його збільшення до 15 або навіть 20 MB цілком виправдане. У процесорах Intel алгоритм наповнення кеш-пам'яті побудований за так званою інклюзивною схемою, коли вміст кешів верхнього рівня (L1, L2) повністю чи частково дублюється в кеші нижнього рівня (L3). Це певною мірою зменшує корисний об'єм його простору. З іншого боку, інклюзивна схема позитивно позначається на взаємодії ядер процесора між собою.
Об'єм внутрішньої кеш-пам'яті деяких моделей серверних процесорів Intel Xeon
складає 37,5 MB
Як дізнатися розмір кеш-пам'яті процесора?
