9 C
София

За какво е необходима процесорната кеш памет – втора част

Оригиналът е на Nick Evanson, който по интересен начин обяснява какво е кеш паметта при процесорите

Най-четени

Даниел Десподовhttps://www.kaldata.com/
Ежедневен автор на новини. Увличам се от съвременни технологии, оръжие, информационна безопасност, спорт, наука и концепцията Internet of Things.

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

Не само числа

Кешът повишава производителността чрез ускоряване прехвърлянето на данните в логическите блокове и чрез записа наблизо на най-често използваните инструкции и данни. Записаната в кеша информация е разделена на две части: самите данни и мястото, където са се намирали първоначално някъде в системната памет или на диска. Този адрес се нарича кеш маркер или кеш таг (cache tag).

Когато процесорът изпълнява някоя инструкция, при която е необходимо да бъдат прочетени или записани данни от/в паметта, то той започва с проверката на таговете от L1 кеша. Ако необходимите данни са там, то тогава считаме, че има кеш попадение (cache hitи данните са почти веднага достъпни. А кеш пропуск (cache missимаме, когато необходимият таг не е намерен в най-ниското ниво на кеша.

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

Всичко това води до едно непрекъснато смесване и циркулиране на данните, което става дори само за няколко тактови цикъла. Единственият начин за подобряване на тази ситуация е да се създаде сложна структура около SRAM, която да управлява данните. Казано по друг начин, ако ядрото имаше само едно ALU, то L1 кешът би бил съвсем опростен. Но в един процесор има десетки ALU, като много от тях жонглират с два потока от инструкции, и в крайна сметка за преместването на данните в различните кешове са необходими много операции.

За изучаване на информацията в кеша на процесора на вашия компютър може да се използва например, безплатното приложение CPU-Z. Но какво означава тази информация? Важен елемент е маркерът set associative (множествено-асоциативен). Този маркер указва към правилата за копиране на блоковете данни от системната памет в кеша.

Представената по-горе информация за кеша е за процесора Intel Core i7-9700K. Всеки от неговите L1 кешове е разделен на 64 неголеми блока, наричани setsа всеки от тези сетове е допълнително е разделен на редове на кеша (cache linesс размер от по 64 байта. ‘Set associative’ означава, че блок данни от системната памет е строго свързан с редовете на кеша в един конкретен Set и не може свободно да се свърже с някое друго място.

От друга страна ‘8-way‘ означава, че един блок данни може да бъде свързан с 8 реда от кеша на сета. Колкото е по-високо нивото на кеша – тоест, колкото е повече ‘way’, толкова по-големи са шансовете за кеш попадение докато процесорът търси необходимите данни, като едновременно с това намаляват загубите от кеш пропуските. Недостатък на тази система е, че сложността на процесорната логика рязко нараства, едновременно с това се повишава консумацията на електрическа енергия и се понижава производителността, понеже за всеки един блок данни се налага обработването на повече редове на кеша.

Инклузивен L1+L2 кеш, victim cache L3, write-back и дори има ECC

Друг аспект в сложността на кеша е свързан с това, по какъв начин се съхраняват данните между различните нива. Правилата за всичко това се задават в inclusion policy (политиката на инклузивност). Така например, процесорите Intel Core имат напълно инклузивните кешове L1+L3. Това означава, че някои данни от Level 1 кеша могат да присъстват и в Level 3. Може да се стори, че това е една напразна загуба на кешово пространство, но преимуществата на това решение е, че ако процесорът направи пропуск при търсенето на таг в най-ниското ниво, на него няма да му се наложи да претърсва цялото горно ниво за намиране на необходимите данни.

В същите тези процесори L2 кешът е неинклузивен – всички намиращи се там данни не се копират на нито едно от другите кеш нива. Това икономисва място, но на процесора се налага да търси ненамерения таг в L3 кеша, който винаги е много по-голям. Така наречените Victim caches или кеш-жертвите използват подобен принцип, но се използват за съхранение на информацията, прехвърляна от по-ниските кеш нива. Така например, процесорите AMD Zen 2 използват victim cache L3, в който се съхраняват данните от L2.

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

Графичният процесор Nvidia GA100 с 20 MB кеш L1 и 40 MB кеш L2

За процесорните архитекти изборът на капацитета, типа и политиката на кешовете е въпрос на намиране на баланс между стремежа за повишаване мощността на CPU, увеличаването на неговата сложност и заеманото от чипа пространство. Ако можеше някакъв начин да се създадат 1000-канални асоциативни кешове от Level 1 с капацитет от 20 MB, само че да не заемат площ колкото Манхатън (и да не консумират енергия колкото Манхатън), то всички щяхме да имаме компютри с подобни чипове.

Най-ниското ниво на кешовете в съвременните процесори през последните десетина години на практика не е променен. Но L3 кешът продължава да расте. Ако преди десет години сте дали $999 за закупуването на Intel i7-980X, то сте взели процесор с 12 MB кеш. Днес за половината от тази сума можете да си вземете процесор с 64 MB кеш.

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

Показаният по-горе графичен процесор Nvidia GA100 демонстрира двукратен ръст на скоростта на математическите изчисления, което е изисквало удвояване на количеството необходими данни. Ето защо, в Ampere SM чиповете са удвоени както общата кеш памет, така и нейната производителност: при Ampere архитектурата, L1 кешът на SM работи със 128 байта на такт, докато при Turing имаме 64 байта на такт. Общата пропускателна способност на L1 кеша на GeForce RTX 3080 е 219 GB/s, докато при GeForce RTX 2080 Super имаме 116 GB/s.

Това си има своята цена: новият графичен процесор се произвежда чрез 7 нанометров технологичен процес и е истински гигант с 54 милиарда транзистора. За сравнение, 12 nm GV100 с архитектура Volta има 21 милиарда транзистора. Известно е, че площта на чипа е около 840 мм². Кристалът на GA100 не само е с внушителна площ, което означава, че разполага с рекорден брой CUDA ядра, но има и шест стека бърза HBM2 памет.

Първите графични процесори изобщо нямат хардуерно управлявани кешове но след като GPU станаха масови, в тях се интегрира все повече и повече кеш памет. Така например, процесорите GT-200 нямаха кеш памет от второ ниво (Level 2), но сега ситуацията е съвсем друга.


А вие имали ли сте компютър с L2 кеш памет на дънната платка? Някой помни ли процесорите Pentium II и Celeron (например 300a), които се поставяха в слотове на дънните платки? Помните ли своя първи процесор с L3 кеш памет?

Абонирай се
Извести ме за
guest
2 Коментара
стари
нови оценка
Отзиви
Всички коментари

Нови ревюта

Sony WF-1000XM4 – най-добре звучащите шумопотискащи безжични слушалки

Новите шумопотискащи слушалки от висок клас на Sony бележат голям напредък спрямо предишното поколение на марката, но и спрямо конкуренцията. Това са Sony WF-1000XM4....

Подобни новини