закрити ×
Комп'ютер
Windows
Програми
Мережа
ukr
Комп'ютерПроцесор → Кеш-пам'ять процесора

Кеш-пам'ять процесора






, 09.04.2015 р.

Кеш-пам'ять відіграє важливу роль. Без неї від високої тактової частоти процесора не було б ніякої користі. Крім того, кеш дозволяє використовувати в комп'ютері будь-яку, навіть "найповільнішу" оперативну пам'ять, без відчутного зниження його продуктивності.

Про те, що таке кеш-пам'ять процесора, як вона працює і який має вплив на швидкодію комп'ютера, читач дізнається із цієї статті.




Що таке кеш-пам'ять процесора


Вирішуючи будь-яке завдання, процесор комп'ютера отримує з оперативної пам'яті необхідні блоки інформації. Обробивши їх, він записує в пам'ять результати обчислень і отримує для обробки наступні блоки. Це триває, поки завдання не буде виконано.

Усі згадані операції проводяться на дуже високій швидкості. Проте, навіть найшвидша оперативна пам'ять працює повільніше будь-якого "неквапливого" процесора. Кожне зчитування з неї інформації і зворотний її запис займають багато часу. В середньому, швидкість роботи оперативної пам'яті у 16 - 17 разів нижча від швидкості процесора.

Не дивлячись на такий дисбаланс, процесор не простоює і не чекає щоразу, коли оперативна пам'ять "видає" або "приймає" дані. Він майже завжди працює на максимальній швидкості. І усе завдяки наявності у нього кеш-пам'яті.

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

Кеш потрібний не лише для вирівнювання дисбалансу швидкості. Процесор обробляє дані дрібнішими порціями, ніж ті, в яких вони зберігаються в оперативній пам'яті. Тому кеш-пам'ять відіграє ще й роль своєрідного місця для "перепаковування" і тимчасового зберігання інформації перед її передачею процесору, а також поверненням результатів обробки в оперативну пам'ять.



Будова кеш-пам'яті процесора


Система кеш-пам'яті процесора складається з двох блоків - контроллера кеш-пам'яті і власне самої кеш-пам'яті.

Контроллер кеш-пам'яті

Контроллер кеш-пам'яті - цей пристрій, який керує вмістом кеша, отриманням необхідної інформації з оперативної пам'яті, передачею її процесору, а також поверненням в оперативну пам'ять результатів обчислень.

Коли ядро процесора звертається до контроллера за якимись даними, той перевіряє, чи є ці дані в кеш-пам'яті. Якщо це так, ядру вмить віддається інформація з кеша (відбувається так зване кеш-попадання).

Інакше ядру доводиться чекати надходження даних з повільної оперативної пам'яті. Ситуація, коли в кеші не виявляється потрібних даних, називається кеш-промахом.

Завдання контроллера - зробити так, щоб кеш-промахи відбувалися якомога рідше, а в ідеалі - щоб їх не було взагалі.

Розмір кеша процесора у порівнянні з розміром оперативної пам'яті дуже малий. У ньому може знаходитися лише копія крихітної частини даних, які зберігаються в оперативній пам'яті. Але, не дивлячись на це, контроллер допускає кеш-промахи не часто. Ефективність його роботи визначається кількома чинниками:

• розміром і структурою кеш-пам'яті (чим більше ресурсів має у своєму розпорядженні контроллер, тим нижчою є вірогідність кэш-промаху);

• ефективністю алгоритмів, за якими контроллер визначає, яка саме інформація знадобиться процесору в наступний момент часу;

• складністю і кількістю завдань, які одночасно вирішуються процесором. Чим складнішими є завдання і чим їх більше, тим частіше "помиляється" контроллер.


Кеш-пам'ять процесора

Кеш-пам'ять процесора виготовляють у вигляді мікросхем статичної пам'яті (англ. Static Random Access Memory, скорочено - SRAM). У порівнянні з іншими типами пам'яті, статична пам'ять має дуже високу швидкість роботи.


Вперше кеш розміром 8 KB був вмонтований в процесор Intel i486
у 1989 р.

Проте, ця швидкість залежить також від об'єму конкретної мікросхеми. Чим значнішим є об'єм мікросхеми, тим складніше забезпечити високу швидкість її роботи.

Враховуючи вказану особливість, кеш-пам'ять процесора виготовляють у вигляді декількох невеликих блоків, які називаються рівнями. У більшості процесорів використовується трирівнева система кеша:

Кеш-пам'ять першого рівня чи L1 (від англ. Level - рівень) - дуже маленька, але найшвидша і найважливіша мікросхема пам'яті. В жодному процесорі її об'єм не перевищує декількох десятків кілобайт. Працює вона без будь-яких затримок. У ній містяться дані, які найчастіше використовуються процесором.

Кількість мікросхем пам'яті L1 в процесорі, як правило, відповідає кількості його ядер. Кожне ядро має доступ тільки до своєї мікросхеми L1.

Кеш-пам'ять другого рівня трохи повільніша від кеш-пам'яті L1, але і об'єм її істотніший (декілька сотень кілобайт). Служить вона для тимчасового зберігання важливої інформації, вірогідність запиту якої нижча, ніж в інформації, яка знаходиться в L1.

Кеш-пам'ять третього рівня (L3) - ще об'ємніша, але й повільніша схема пам'яті. Проте, вона значно швидша від оперативної пам'яті. Її розмір може досягати декількох десятків мегабайт. На відміну від L1 і L2, вона є спільною для всіх ядер процесора.

Рівень L3 служить для тимчасового зберігання важливих даних з відносно низькою вірогідністю запиту, а також для забезпечення взаємодії ядер процесора між собою.

Зустрічаються також процесори з дворівневою кеш-пам'яттю. У них L2 поєднує в собі функції L2 і L3.



Вплив кеш-пам'яті процесора на швидкодію комп'ютера


При виконанні запиту на надання даних ядру, контроллер пам'яті шукає їх спочатку в кеші першого рівня, потім - в кеші другого і третього рівнів.

За статистикою, кеш-пам'ять першого рівня будь-якого сучасного процесора забезпечує до 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

В цілому ж, експерименти свідчать, що в середньостатистичному "домашньому" процесорі вплив розміру кеша на продуктивність знаходиться в межах 10 %, і його цілком можна компенсувати, наприклад, за рахунок високої частоти.

Ефект від великого кеша найвідчутніший при використанні архіваторів, в 3D іграх, під час кодування відео. У "не тяжких" же програмах різниця наближається до нуля (офісні програми, інтернет-серфінг, робота з фотографіями, прослуховування музики та ін.).

Багатоядерні процесори з великим кешем потрібні на комп'ютерах, призначених для виконання багатопотокових програм, одночасного вирішення декількох складних завдань.

Особливо актуально це для серверів з високою відвідуваністю. У деяких високонавантажуваних серверах і суперкомп'ютерах передбачена можливість встановлення кеш-пам'яті четвертого рівня (L4). Виготовляється вона у вигляді окремих мікросхем, що підключаються до материнської плати.


Як дізнатися розмір кеш-пам'яті процесора?

Існують спеціальні програми, які надають детальну інформацію про процесор комп'ютера, у тому числі й про його кеш-пам'ять. Однією з них є програма CPU-Z.

• CPU-Z:

Перейти на сторінку завантаження >>>

Програма не потребує встановлення. Після її запуску треба перейти на вкладку "Caches" (див. зображення).

На прикладі видно, що процесор, який перевіряється, оснащений трирівневою кеш-пам'яттю. Розмір кеша L3 у нього складає 3 MB, L2 - 512 KB (256x2), L1 - 128 KB (32x2+32x2).


Чи можна якось збільшити кеш-пам'ять процесора?

Як вже було сказано в одному з попередніх пунктів, можливість збільшення кеш-пам'яті процесора передбачена в деяких серверах і суперкомп'ютерах, шляхом її підключення до материнської плати.

У домашніх же або офісних комп'ютерах така можливість відсутня. Кеш-пам'ять є внутрішньою невід'ємною частиною процесора, має дуже маленькі фізичні розміри і не підлягає заміні. А на звичайних материнських платах немає роз'ємів для підключення додаткової кеш-пам'яті.





СХОЖІ МАТЕРІАЛИ

Центральний процесор: призначення, будова, принципи роботи, основні характеристики.

Як перевірити процесор комп'ютера. Інструкція з перевіки стабільності роботи процесора за допомогою програми Prime95.

chaynikam.info © 2009 - 2016