Какво е кеш?

click fraud protection

Какво е кеш и защо процесорите, графичните процесори и други видове процесори го имат? Ето всичко, което трябва да знаете.

бързи връзки

  • Кеш: Малко количество високоскоростна памет
  • Нива на кеша и йерархия на паметта
  • Кешът е необходим, но сам по себе си не подобрява производителността

Въпреки че не се говори толкова за кеша, колкото за ядрата, RAM (памет с произволен достъп), или VRAM, вероятно сте чували за него и преди, особено напоследък. AMD с гордост рекламира производителността на игрите за своите Процесори Ryzen с 3D V-Cache в резултат на използването на кеш памет и едно от най-големите подобрения на Intel с процесорите Raptor Lake от 13-то поколение беше добавянето на повече кеш памет.

Но как кеша може да подобри производителността, когато се измерва в мегабайти? Дори най-евтините RAM комплекти идват с 16GB в наши дни, така че как може добавянето само на няколко допълнителни мегабайта кеш да направи толкова голяма разлика в производителността? Е, кешът не е вашият нормален тип памет.

Кеш: Малко количество високоскоростна памет

Източник: AMD

Кешът всъщност е доста скорошно развитие в процесорите, датиращо от 90-те години на миналия век и е изобретено заради RAM. RAM е ключов компонент в компютрите, който съхранява значително количество данни, от които се очаква процесорите (като CPU и GPU) да се нуждаят доста често. Дълго време подобренията в производителността на RAM вървяха в крак с подобренията в производителността на процесора, но през 90-те години на миналия век тя се превръщаше в Очевидно е, че RAM няма да може да се справи с най-новите процесори. RAM имаше голям капацитет, но скоростите на трансфер бяха също бавен.

Ето къде се намесва кеша. Тя не е почти толкова голяма, колкото RAM нито физически, нито като капацитет, но е вътре в самия процесор и може да прехвърля данни много бързо и с много ниска латентност. Докато кешът съхранява данните, от които процесорът действително се нуждае, това може да спести време, тъй като искането на RAM за същите данни е многократно по-бавно. Това беше страхотно решение на проблема с RAM и позволи на дизайнерите на CPU да продължат да правят по-бързи CPU и Дизайнерите на RAM да продължат да правят по-големи капацитети на RAM, без да се притесняват толкова много производителност. Днес кеш паметта присъства в почти всеки вид процесор.

Може би се чудите защо кешът е толкова малък. Е, това е свързано най-вече с пространство и пари. Дори 32MB кеш памет може да заеме доста място на процесора, а модерните чипове са ограничени до приблизително 600 mm2 обща площ, която трябва да се използва разумно. Това означава, че отделянето на повече площ за кеша може да бъде доста скъпо и тази ситуация всъщност се влошава, а не се подобрява. Най-новите производствени процеси водят до все по-малки и по-малки подобрения в плътността на кеша, а TSMC изобщо не успя да намали размера на кеша в първата итерация на своя 3nm процес.

Нива на кеша и йерархия на паметта

Източник: Карлос Карвальо

Изобретяването на кеша означава, че има нов слой за всички устройства за съхранение на данни в компютъра. Тези слоеве образуват това, което се нарича йерархия на паметта, която можете да видите на изображението по-горе и в подробности каква памет къде отива в типична система в рамките на процесор (въпреки че други видове процесори ще изглеждат много подобен). Днес съвременната йерархия на паметта не включва само кеш, RAM и постоянни устройства за съхранение, но и йерархия на паметта в самия кеш.

Повечето процесори имат различни нива на кеш памет за различни цели. Първото и най-малко ниво на кеш паметта е L1, на което са дадени отделни ядра за обработка на данни, които са необходими незабавно. L1 кешът често се измерва в килобайти, като най-новите процесори Ryzen 7000 имат 64KB L1 кеш на ядро. Освен това модерният L1 кеш често се разделя на L1I (за инструкции) и L1D (за данни).

Следва L2, който е за група ядра, а не за отделни. Естествено L2 кеша е по-голям от L1 кеша, често с порядък, но това, че е много по-голям и трябва да обслужва повече ядра, означава, че е по-бавен и има по-висока латентност. Някои процесори, особено GPU и по-бавните процесори, ще достигнат само L2 кеш.

Следващата стъпка е L3, който обикновено се използва от всички ядра на чипа. Размерът му може да варира от няколко пъти по-голям от L2 кеша до повече от един порядък по-голям, в зависимост от процесора. Това означава, че е дори по-бавен от L2 кеша, но все пак превъзхожда RAM. Освен това кешът L3 също често действа като „кеш за жертви“, където отиват данните, изхвърлени от кеша L1 и L2. Може допълнително да бъде изваден от L3 кеша, ако е ненужен. Днес L3 кешът е особено важен за AMD поради неговата чиплетна технология. Ryzen 3D V-Cache чиповете съдържат 64MB L3 кеш, а RX 7000 Memory Cache Dies (или MCD) съдържат 16MB L3 кеш всеки.

Най-високото ниво на кеш, наблюдавано при повечето процесори, е L4, което често е толкова голямо, че на практика е RAM. Всъщност най-новите процесори, които използват L4 кеш, са чиповете Sapphire Rapids Xeon на Intel, които използват HBM2 като L4 кеш на модели от най-висок клас. AMD, от друга страна, никога не е използвала L4 кеш и вместо това се задоволява да разшири своя L3 кеш до големи капацитети чрез добавяне на повече CPU и V-Cache чиплети. L4 кеш паметта обикновено облагодетелства повече интегрираните графични процесори, тъй като е вградено решение, което може да споделя данни между процесора и интегрирания графичен процесор.

В някои чипсети, предимно мобилни, има друг тип кеш: кеш на системно ниво (SLC). След това този кеш се използва в целия чипсет, като GPU, NPU и CPU. Кешът може да замени необходимостта от заявки към основната памет, така че SLC е от полза за цялата SoC.

Кешът е необходим, но сам по себе си не подобрява производителността

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

Като се има предвид това, възможността за добавяне на голямо количество кеш може да бъде желателно в определени ситуации. Процесорите с много кеш памет обикновено се представят по-добре в игри, например. Процесорите Ryzen на AMD с 3D V-Cache са доста бързи за игри, въпреки че имат по-ниска честота от чиповете без V-Cache и Процесорите на Intel от 13-то поколение са значително по-бързи от чиповете от 12-то поколение, като единственото голямо подобрение е разширеното кеш памет.

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