Cache паметта е важна част от днешните компютри, но тя не се използва само в процесорните чипове. Няколко други вида кеш също играят важна роля за това да можем да играем свободно игри например. Двете главни разновидности са хардуерен и софтуерен cache.
Съдържание
Софтуерен cache
Софтуерният кеш, в сравнение с хардуерния, се управлява по-лесно, затова много програми работят с такъв. Няколко разновидности са например:
- Keш страници в оперативната памет – управляват се от ядрото на операционната система.
- Мрежов cache – браузърите съхраняват данни за уеб сайтовете, за да намалят нуждата от повторно изтегляне на информацията от сървърите.
- Системите за търсене като Google често правят достъпни сайтовете, които са индексирали, в техните кеш памети в центровете за данни.
- Базите от данни също имат cache, с който значително се подобрява обработването на индекси, речници от данни и други.
Хардуерен cache
От другата страна стоят хардуерните кеш памети, които, разбира се, са си истински памети, не от плът и кръв, но от транзистори и полупроводници. Техните подвидове са разделени главно според компонента, който ги използва:
- cache памет на графичните процесори – ранните графични устройства имали кеш памет с ограничен размер и само за четене на данни за текстурите. Но с развитието на технологиите, графичните процесори се нуждаели от и се сдобили с все по-големи универсални кешове, които вече съхранявали разнообразие от информация необходима за работата.
- процесорите на дигитални сигнали – въпреки че първоначално използвали бърза локална памет за съхранение на временни данни, днес те приличат на централните процесори – имат няколко нива кеш.
- процесорна cache памет – малки памети, поставени в чипа на централните процесори, осигуряващи много по-големи скорости на работа от оперативната памет. Останалите подробности за може би най-важния тип кеш сме разгледали в материала по-долу.
Основният замисъл за cache паметта бил тя да служи като буфер между централния процесор и основната памет. Това се оказало необходимо заради различната им скорост на работа. Дори и в ранните времена на изчислителната техника, колкото и да не ни се вярва, процесорите били доста по-бързи от главната памет. A след 1980 г. тази разлика нарастнала още повече.
Ето как работи cache паметта:
cache паметите са значително по-малки от оперативната памет и съхраняват само информация, от която процесорът ще се нуждае в следващия момент от време. Сложни алгоритми и правила за работата на софтуера определят кои данни да се запишат в кеша на ниво L1. Целта е нужната информация да е на разположение на процесора в момента, в който той започне да я „търси“. Ако това е успешно, резултатът се нарича „попадение на кеша“, а в обратния случай – „пропуск“.
Точно при “пропуск“ в главната роля влиза ниво памет L2, което има по-голям обем. И въпреки по-малката скорост на работа (за съжаление), една памет от ниво L2 може да донесе същите ползи като голяма L1 памет. Ако данните не бъдат намерени в L2, процесорът продължава с търсенето по другите нива или в краен случай – оперативната памет DRAM. Но всъщност пропуските се случват сравнително рядко, защото модерните кеш памети подсигуряват процент на попадение от 95 и нагоре.
Дори да ни се струват малки по обем – L1 обикновено е няколкостотин килобайта, а L2 е едноцифрена големина в мегабайти, в действителност cache паметите стават все по-големи заедно с останалия хардуер. А защо това се случва? Отговорът е лесен – всяко допълнително място за данни в кеша намалява нуждата на процесора за достъп до „бавната“ оперативна памет. На следващата графика може да се проследи ефектът от работа на процесор с допълнително ниво cache памет. Червената линия представя случая, в който процесорът работи с L4, ниво със 128 мегабайта кеш. Ползата е видима при работа с големи файлове (>8 МБ). Тогава допълнителният кеш прави системата два пъти по-бърза. За пояснение – другите два процесора разполагат само с до L3 cache памет.
От много глава не боли, но е скъпо
Въпреки че изглежда логично cache паметта да е с огромни размери, реалността е, че това би било ужасно скъпо. Затова след определена степен във всеки един етап от развитието на технологията е по-правилно финансите да се насочат по посока подобрение на технологията, алгоритмите и просто по-добри процесори. Освен това другият важен фактор си остава процентът на попадение. Заедно те определят дизайна на cache паметта така, че балансът между размера на нивата да бъде подходящ. Накратко казано – идеята е отново да се ограничи търсенето на следващата порция данни извън ниво L1 и в най-краен случай в основната памет.
Бъдещето на тази технология, която подобрява производителността на компютърните системи, е в ръцете на изследователите, които се опитват да извлекат голяма производителност от малки cache памети. Но те могат да бъдат спокойни, защото, по едно неписано правило, на всеки 10 години се добавя 1 ново ниво cache памет. За близо петдесетгодишната история на компютрите, това винаги е било валидно. Въпреки допълнителните мегабайти, критични за производителността на бъдещите процесори ще бъдат: дизайнът, консумацията на енергия и производителността на cache паметта. Затова ще следим какви подобрения по съществуващата технология ще открият компаниите в бранша.