Какво представлява кешът на процесора?

click fraud protection

Съвременните процесори работят невероятно бързо; те могат значително да превъзхождат системната RAM памет. Този дисбаланс в скоростта между процесора и паметта би накарал процесора ви често да не работи, чакайки да му бъдат изпратени данни, за да може да продължи да изпълнява процес. За да се предотврати това да се случи, позволявайки на процесорите да продължат да работят по-бързо и по-бързо, се използва кеш на процесора.

Как кешът на процесора ускорява процесора?

Кешът на процесора е проектиран да бъде възможно най-бърз и след това да кешира данните, които процесорът изисква. Кешът на процесора има оптимизирана скорост по три начина: латентност, честотна лента и близост. Кешът на процесора работи с много ниски латентности, свеждайки до минимум времето, необходимо за връщане на резултата. Например, Intel i9-9900k има латентност на кеша от 0,8, 2,4 и 11,1 наносекунди съответно за L1, L2 и L3 кеша. За сравнение, латентността на съвременната високоскоростна RAM памет е от порядъка на 14 наносекунди.

Съвет: Нивата на кеша ще бъдат обяснени по-подробно по-късно, но просто казано, долните слоеве на кеша са по-бързи, но са по-скъпи, така че имат по-нисък капацитет. Наносекундата е милиардна част от секундата, така че латентността от 0,8 секунди означава, че са необходими по-малко от милиардна част от секундата, за да се върне резултат.

По отношение на честотната лента, кешът на процесора предлага значителни подобрения в производителността в сравнение с традиционното съхранение и RAM. Скоростите на четене на кеша L1 и L3 могат да достигнат 2,3 TB/s и 370 GB/s съответно, докато честотната лента на RAM обикновено е около 40 GB/s. Тази увеличена честотна лента означава, че кешът на процесора може да прехвърля данни към процесора много по-бързо, отколкото RAM.

За постигане на максималните възможни скорости кешът на процесора всъщност е вграден в силиция на самия процесор. Това свежда до минимум разстоянието, което всички електрически сигнали трябва да изминат, като по този начин поддържа латентността възможно най-ниска. Например, когато кешът L3 за първи път беше преместен от дънната платка в процесора, процесорът от времето (Pentium 4 EE) успя да постигне 10-20% подобрение на производителността.

Архитектура на кеша на процесора

Съвременните процесори обикновено използват три слоя кеш на процесора, обозначен с L1-3, като кешовете с по-нисък номер са по-близо до ядрата на процесора, по-бързи и по-скъпи. Всяко отделно ядро ​​на процесора в многоядрен процесор има собствен L1 кеш. Обикновено се разделя на две части, L1I и L1D. L1I се използва за кеширане на инструкции за процесора, докато L1D се използва за кеширане на данните, върху които тези инструкции трябва да бъдат изпълнени.

Всяко ядро ​​на процесора обикновено има и собствена L2 кеш памет на модерен процесор. Кешът L2 е по-голям и по-бавен от кеша L1 и се използва основно за съхраняване на данни, които иначе не биха се побрали в кеша на L2. Чрез наличието на специален L2 кеш на ядро, спорът за кеш се избягва. Конфликтът за кеш паметта е мястото, където различни ядра се борят да поискат кеш пространство за собствените си работни натоварвания, което може да доведе до изчистване на важни данни от кеша.

Кешът L3 обикновено се споделя между всички ядра на процесора на процесора. Отново, L3 кеш е по-бавен от L2 кеш, но е по-евтин и по-голям. Чрез предоставяне на споделен кеш е възможно да се намали количеството данни, които биха били дублирани на по-ниски нива на кеша на ядро.

Съвет: Като пример, в размерите на кеша, i9-9900K на Intel има 64KB L1 и 256KB L2 кеш на ядро ​​(за общо 512KB L1 и 2MB L2), той също има 16MB споделен L3 кеш.

Как се използва кешът на процесора?

Всички нива на кеша на процесора се използват за ускоряване на производителността на процесора чрез кеширане на данни от RAM. Когато процесорът изисква данни, той обикновено търси първо в своите кеш слоеве в опит да получи данните възможно най-бързо. Ако данните се намерят в кеша, тогава процесорът може да продължи обработката си. Ако данните не са в кеша, в това, което се нарича пропуск на кеша, тогава процесорът трябва да провери RAM паметта и след това твърдия диск, ако данните също не са там. По-бързите слоеве винаги се проверяват първи за максимална производителност.

За да помогне на процесора да има нужните му данни в кеша, когато има нужда от тях, кешът се опитва да изпревари какви данни може да има нужда централният процесор след това. Например, ако процесорът е поискал някои данни за изображение, което изобразява, кешът може да се опита предварително да кешира повече от данните за изображението, така че да могат да бъдат подадени на процесора възможно най-бързо.