Отворете
Близо

Който кеш е разделен на две части. Какво означава кеш на процесора, каква е разликата между L1, L2, L3. Опаковане и разопаковане

Чиповете в повечето съвременни настолни компютри имат четири ядра, но производителите на чипове вече обявиха планове за преминаване към шест ядра, а 16-ядрените процесори все още не са необичайни за сървърите от висок клас днес.

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

Физически възможно най-близо до процесора може да се постави само много ограничено количество памет - L1 кеш паметта на процесора, чийто обем е изключително незначителен. Даниел Санчес, По-Ан Цай и Нейтън Бекман, изследователи от лабораторията за компютърни науки и изкуствен интелект на Масачузетския технологичен институт, научиха компютър да конфигурира различни типове памет за гъвкава йерархия от програми в реално време. Новата система, наречена Jenga, анализира обемните нужди и честотата на програмен достъп до паметта и преразпределя мощността на всеки от 3-те вида процесорен кеш в комбинации, които осигуряват повишена ефективност и икономия на енергия.


Като начало изследователите тестваха повишаването на производителността при комбиниране на статична и динамична памет при работа върху програми за едноядрен процесор и получиха първична йерархия - кога коя комбинация е по-добре да се използва. От 2 вида памет или от една. Бяха оценени два параметъра: забавяне на сигнала (латентност) и консумация на енергия по време на работа на всяка програма. Приблизително 40% от програмите започнаха да работят по-зле с комбинация от видове памет, останалите - по-добре. След като записаха кои програми „харесват“ смесена производителност и кои харесват размера на паметта, изследователите изградиха своята система Jenga.

Те тестваха виртуално 4 вида програми на виртуален компютър с 36 ядра. Тествани програми:

  • omnet - Objective Modular Network Testbed, C библиотека за симулация и платформа за инструменти за мрежова симулация (синьо на снимката)
  • mcf - рамка за мета съдържание (червен цвят)
  • astar - софтуер за показване на виртуална реалност (зелен)
  • bzip2 - архиватор (лилав цвят)


Картината показва къде и как са обработени данните от всяка програма. Буквите показват къде се изпълнява всяко приложение (по едно на квадрант), цветовете показват къде се намират неговите данни, а засенчването показва второто ниво на виртуалната йерархия, когато е налице.

Нива на кеша

Кеш паметта на процесора е разделена на няколко нива. За универсални процесори - до 3. Най-бързата памет е кеш паметта от първо ниво - L1-cache, тъй като се намира на същия чип като процесора. Състои се от кеш за инструкции и кеш за данни. Някои процесори без L1 кеш не могат да функционират. L1 кешът работи на честотата на процесора и може да бъде достъпен на всеки такт. Често е възможно да се извършват няколко операции за четене/запис едновременно. Обемът обикновено е малък - не повече от 128 KB.

Кешът от второ ниво, L2, взаимодейства с кеша L1. Той е вторият най-бърз. Обикновено се намира или върху чипа, като L1, или в непосредствена близост до ядрото, като например в процесорна касета. В по-старите процесори, набор от чипове на дънната платка. Обем на L2 кеша от 128 KB до 12 MB. В съвременните многоядрени процесори кешът от второ ниво, разположен на същия чип, е отделна памет - при общ размер на кеша от 8 MB, всяко ядро ​​отчита 2 MB. Обикновено латентността на L2 кеша, разположен на основния чип, е от 8 до 20 тактови цикъла на ядрото. При задачи, включващи множество достъпи до ограничена област на паметта, например СУБД, пълното му използване увеличава производителността десетократно.

Кешът L3 обикновено е дори по-голям, макар и малко по-бавен от кеша L2 (поради факта, че шината между L2 и L3 е по-тясна от шината между L1 и L2). L3 обикновено се намира отделно от ядрото на процесора, но може да бъде голям - над 32 MB. Кешът L3 е по-бавен от предишните кешове, но все още е по-бърз от RAM. В многопроцесорните системи се използва често. Използването на кеш от трето ниво е оправдано в много тесен кръг от задачи и може не само да не осигури увеличаване на производителността, но, напротив, да доведе до общо намаляване на производителността на системата.

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


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

Jenga разпределя данни не само в зависимост от това кои програми се изпращат - тези, които обичат голяма едноскоростна памет или тези, които обичат скоростта на смесени кешове, но и в зависимост от физическата близост на клетките на паметта до обработваните данни. Независимо какъв тип кеш програмата изисква по подразбиране или по йерархия. Основното нещо е да се сведе до минимум забавянето на сигнала и консумацията на енергия. В зависимост от това колко типа памет „харесва“ програмата, Jenga моделира латентността на всяка виртуална йерархия с едно или две нива. Йерархиите на две нива образуват повърхност, йерархиите на едно ниво образуват крива. След това Jenga проектира минималното забавяне в размерите на VL1, което води до две криви. И накрая, Jenga използва тези криви, за да избере най-добрата йерархия (т.е. размер VL1).

Използването на Jenga има забележим ефект. Виртуалният 36-ядрен чип започна да работи с 30 процента по-бързо и използва 85 процента по-малко енергия. Разбира се, засега Jenga е просто симулация на работещ компютър и ще мине известно време, преди да видите реални примери за този кеш и дори преди производителите на чипове да го приемат, ако им хареса технологията.

Конфигурация на конвенционална 36-ядрена машина

  • Процесори. 36 ядра, x86-64 ISA, 2,4 GHz, Silvermont-like OOO: 8B-wide
    ifetch; 2-ниво bpred с 512×10-битови BHSRs + 1024×2-битови PHT, 2-посочно декодиране/издаване/преименуване/комит, 32-влизане IQ и ROB, 10-вписване LQ, 16-вписване SQ; 371 pJ/инструкция, 163 mW/ядро статична мощност
  • L1 кешове. 32 KB, 8-посочен набор-асоциативни, разделени кешове за данни и инструкции,
    3-цикълна латентност; 15/33 pJ на попадение/пропускане
  • Услуга Prefetchers. Предварителни извличащи потоци с 16 входа, моделирани след и валидирани спрямо
    Нехалем
  • L2 кешове. 128 KB лично за ядро, 8-посочен набор-асоциативен, включително, 6-цикълна латентност; 46/93 pJ на попадение/пропускане
  • Кохерентен режим. 16-посочни, 6-цикълни латентни указателни банки за Jenga; в кеша L3 директории за други
  • Глобален NoC. 6×6 меша, 128-битови флитове и връзки, X-Y маршрутизиране, 2-циклични конвейерни рутери, 1-циклични връзки; 63/71 pJ на обхождане на рутер/линк, 12/4mW статична мощност на рутер/линк
  • Статичната памет блокира SRAM. 18 MB, една банка от 512 KB на плочка, 4-посочен zcache с 52 кандидата, 9-цикълно забавяне на банката, Vantage разделяне; 240/500 pJ на попадение/пропускане, 28 mW/банка статична мощност
  • Многослойна подредена DRAM. 1152MB, едно хранилище от 128MB на 4 плочки, Alloy с MAP-I DDR3-3200 (1600MHz), 128-битова шина, 16 ранга, 8 банки/ранг, 2 KB буфер на редове; 4,4/6,2 nJ на попадение/пропускане, 88 mW/статична мощност на трезор
  • Главна памет. 4 DDR3-1600 канала, 64-битова шина, 2 ранга/канал, 8 банки/ранг, 8 KB редов буфер; 20 nJ/достъп, 4W статична мощност
  • Времена на DRAM. tCAS=8, tRCD=8, tRTP=4, tRAS=24, tRP=8, tRRD=4, tWTR=4, tWR=8, tFAW=18 (всички времена в tCK; подредената DRAM има половината от tCK като основна памет )

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

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

Какъв е обемът и какво влияе?

Обемът на буфера заслужава специално внимание. Често твърдите дискове са оборудвани с кеш от 8, 16, 32 и 64 MB. При копиране на големи файлове между 8 и 16 MB ще има значителна разлика в производителността, но между 16 и 32 е по-малко забележима. Ако изберете между 32 и 64, тогава почти няма да ги има. Необходимо е да се разбере, че буферът често изпитва големи натоварвания и в този случай колкото по-голям е, толкова по-добре.

Съвременните твърди дискове използват 32 или 64 MB по-малко днес; За обикновен потребител и първата, и втората стойност ще бъдат достатъчни. Освен това, в допълнение към това, производителността се влияе и от размера на кеша, вграден в системата. Именно това увеличава производителността на твърдия диск, особено при достатъчно RAM.

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

Предназначение

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

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

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

Основни предимства

Буферната памет има редица предимства, основното от които е бързата обработка на данни, която отнема минимално време, докато физическият достъп до секторите на устройството изисква известно време, докато главата на диска намери необходимата част от данни и започне да го прочета. Освен това твърдите дискове с най-голяма памет могат значително да облекчат компютърния процесор. Съответно процесорът се използва минимално.

Може да се нарече и пълноценен ускорител, тъй като функцията за буфериране прави твърдия диск да работи много по-ефективно и бързо. Но днес, с бързото развитие на технологиите, той губи предишното си значение. Това се дължи на факта, че повечето съвременни модели имат 32 и 64 MB, което е достатъчно за нормалното функциониране на устройството. Както бе споменато по-горе, можете да надплатите разликата само когато разликата в разходите съответства на разликата в ефективността.

И накрая, бих искал да кажа, че буферната памет, независимо каква е, подобрява производителността на определена програма или устройство само ако многократно се осъществява достъп до едни и същи данни, чийто размер не е по-голям от размера на кеша. Ако работата на вашия компютър включва програми, които активно взаимодействат с малки файлове, тогава имате нужда от твърд диск с най-голямо място за съхранение.

Как да разберете текущия размер на кеша

Всичко, което трябва да направите, е да изтеглите и инсталирате безплатната програма HDTune. След стартиране отидете в секцията „Информация“ и в долната част на прозореца ще видите всички необходими параметри.


Ако купувате ново устройство, тогава всички необходими характеристики можете да намерите на кутията или в приложените инструкции. Друг вариант е да погледнете в интернет.

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

Размер на L1 кеша (от 8 до 128 KB)
Размер на кеша ниво 1.
Кешът от ниво 1 е блок от високоскоростна памет, разположен директно върху ядрото на процесора.
Данните, извлечени от RAM, се копират в него.

Съхраняването на основни инструкции подобрява производителността на процесора поради по-високата скорост на обработка на данни (обработката от кеша е по-бърза, отколкото от RAM).

Капацитетът на кеша от първо ниво е малък и възлиза на килобайти.
Обикновено "по-старите" модели процесори имат по-голям L1 кеш.
За многоядрени модели е посочено количеството L1 кеш памет за едно ядро.

Размер на L2 кеша (от 128 до 12288 KB)
Размер на кеша ниво 2.
L2 кеша е блок от високоскоростна памет, който изпълнява същите функции като L1 кеша (вижте "Капацитет на L1 кеша"), но има по-ниска скорост и по-голям капацитет.

Ако избирате процесор за задачи, изискващи ресурси, тогава моделът с голям L2 кеш ще бъде за предпочитане.
За многоядрени процесори се посочва общото количество кеш памет от второ ниво.

Размер на L3 кеша (от 0 до 16384 KB)
Размер на кеша ниво 3.
Интегрираният L3 кеш, комбиниран с бърза системна шина, образува високоскоростен канал за обмен на данни със системната памет.

По правило само централните процесори за сървърни решения или специални издания на „настолни“ процесори са оборудвани с кеш памет от трето ниво.

Например процесорни линии като Intel Pentium 4 Extreme Edition, Xeon DP, Itanium 2, Xeon MP и други имат кеш памет от трето ниво.

Twin BiCS FLASH - нова технология за 3D флаш памет

На 11 декември 2019 г., на IEEE International Electronic Devices Meeting (IEDM), TOKYO-Kioxia Corporation обяви технологията за 3D флаш памет - Twin BiCS FLASH.

AMD Radeon Software Adrenalin Edition 2020 Драйвер 19.12.2 WHQL (добавен)

На 10 декември AMD представи мега драйвера Radeon Software Adrenalin 2020 Edition 19.12.2 WHQL.

Windows 10 Кумулативна актуализация 1909 KB4530684

На 10 декември 2019 г. Microsoft пусна кумулативна актуализация KB4530684 (компилация 18363.535) за актуализация на Windows 10 ноември 2019 г. (версия 1909) на x86, x64 (amd64), ARM64 и Windows Server 2019 (1909) процесори за x64-базирани системи.

NVIDIA Game Ready GeForce 441.66 WHQL драйвер

Драйверът NVIDIA GeForce Game Ready 441.66 WHQL включва поддръжка за MechWarrior 5: Mercenaries и Detroit: Become Human, а също така добавя G-SYNC поддръжка за MSI MAG251RX и ViewSonic XG270 монитори.

Колко важен е L3 кеш паметта за AMD процесорите?

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

Поне на теория. Наскоро AMD обяви процесора Athlon II X4, който е модел Phenom II X4 без L3 кеш, намеквайки, че не е толкова необходим. Решихме директно да сравним два процесора (със и без L3 кеш), за да проверим как кешът влияе върху производителността.

Кликнете върху снимката, за да я увеличите.

Как работи кеша?

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

Удари и пропуски

Ефективността на кеш архитектурите се измерва чрез процент на попадения. Заявките за данни, които могат да бъдат удовлетворени от кеша, се считат за попадения. Ако този кеш не съдържа необходимите данни, тогава заявката се предава по-нататък по конвейера на паметта и се отчита пропуск. Разбира се, пропуските водят до повече време, необходимо за получаване на информация. В резултат на това в изчислителния конвейер се появяват „балони“ (бездействие) и забавяния. Хитовете, напротив, ви позволяват да поддържате максимална производителност.

Кеш запис, изключителност, съгласуваност

Правилата за подмяна диктуват как кеша се освобождава за нови записи. Тъй като данните, записани в кеша, в крайна сметка трябва да се появят в основната памет, системите могат да го правят едновременно с запис в кеша (през запис) или могат да маркират областите с данни като "мръсни" (запис обратно) и да пишат памет, когато бъде извадена от кеша.

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

Размер на кеша

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

Асоциативност

Записите в RAM могат да бъдат директно картографирани към кеша, т.е. има само една кеш позиция за копие на данни от RAM, или могат да бъдат n-посочни асоциативни, т.е. има n възможни местоположения в кеша, където това данни могат да се съхраняват. По-високите степени на асоциативност (до напълно асоциативни кешове) осигуряват по-голяма гъвкавост на кеширането, тъй като съществуващите данни в кеша не е необходимо да се презаписват. С други думи, висока n-степен на асоциативност гарантира по-висок процент на попадение, но също така увеличава латентността, тъй като отнема повече време, за да се проверят всички тези асоциации за попадение. Обикновено най-високата степен на асоцииране е разумна за последното ниво на кеширане, тъй като максималният капацитет е наличен там и търсенето на данни извън този кеш ще доведе до достъп на процесора до бавна RAM.

Ето няколко примера: Core i5 и i7 използват 32 KB L1 кеш с 8-посочна асоциативност за данни и 32 KB L1 кеш с 4-посочна асоциативност за инструкции. Разбираемо е, че Intel иска инструкциите да са достъпни по-бързо и L1 кешът за данни да има максимална скорост на попадение. Кешът L2 на процесорите на Intel има 8-посочна асоциативност, а Intel L3 кешът е още по-умен, тъй като прилага 16-посочна асоциативност за максимизиране на попаденията.

AMD обаче следва различна стратегия с процесорите Phenom II X4, която използва двупосочен асоциативен L1 кеш за намаляване на латентността. За да се компенсират възможни пропуски, капацитетът на кеша е удвоен: 64 KB за данни и 64 KB за инструкции. L2 кешът има 8-посочна асоциативност, подобно на дизайна на Intel, но L3 кешът на AMD работи с 48-посочна асоциативност. Но решението да се избере една архитектура на кеша пред друга не може да бъде оценено, без да се вземе предвид цялата архитектура на процесора. Съвсем естествено е, че резултатите от тестовете имат практическо значение и нашата цел беше именно практически тест на цялата тази сложна многостепенна кешираща структура.

Всеки съвременен процесор има специален кеш, който съхранява инструкции и данни на процесора, готови за използване почти моментално. Това ниво обикновено се нарича Ниво 1 или L1 кеш и е въведено за първи път в процесорите 486DX. Наскоро AMD процесорите станаха стандартни с 64 KB L1 кеш на ядро ​​(за данни и инструкции), а процесорите на Intel използват 32 KB L1 кеш на ядро ​​(също за данни и инструкции)

L1 кешът се появява за първи път в процесорите 486DX, след което става неразделна характеристика на всички съвременни процесори.

Кешът от второ ниво (L2) се появи на всички процесори след пускането на Pentium III, въпреки че първите му реализации върху опаковката бяха в процесора Pentium Pro (но не в чипа). Съвременните процесори са оборудвани с до 6 MB L2 кеш в чипа. По правило този обем се разделя между две ядра на процесор Intel Core 2 Duo, например. Типичните L2 конфигурации осигуряват 512 KB или 1 MB кеш на ядро. Процесорите с по-малък L2 кеш обикновено са на по-ниско ценово ниво. По-долу е дадена диаграма на ранни реализации на L2 кеш.

Pentium Pro имаше L2 кеш в опаковката на процесора. В следващите поколения на Pentium III и Athlon L2 кешът беше реализиран чрез отделни SRAM чипове, което беше много разпространено по това време (1998, 1999).

Последвалото обявяване на технологичен процес до 180 nm позволи на производителите най-накрая да интегрират L2 кеш в матрицата на процесора.


Първите двуядрени процесори просто използваха съществуващи дизайни, които включваха две матрици на пакет. AMD представи двуядрен процесор върху монолитен чип, добави контролер на паметта и превключвател, а Intel просто събра два едноядрени чипа в един пакет за първия си двуядрен процесор.


За първи път L2 кешът започна да се споделя между две изчислителни ядра на процесори Core 2 Duo. AMD отиде по-далеч и създаде първия си четириядрен Phenom от нулата, а Intel отново използва чифт матрици, този път две двуядрени матрици Core 2, за първия си четириядрен процесор, за да намали разходите.

Кешът от трето ниво съществува от ранните дни на процесора Alpha 21165 (96 KB, процесори, представени през 1995 г.) или IBM Power 4 (256 KB, 2001 г.). Въпреки това, в архитектурите, базирани на x86, L3 кешът се появява за първи път с моделите Intel Itanium 2, Pentium 4 Extreme (Gallatin, и двата процесора през 2003 г.) и Xeon MP (2006 г.).

Ранните реализации просто предоставиха друго ниво в йерархията на кеша, въпреки че съвременните архитектури използват L3 кеша като голям споделен буфер за междуядрено предаване на данни в многоядрени процесори. Това се подчертава от високата n-степен на асоциативност. По-добре е да търсите данни малко по-дълго в кеша, отколкото да стигнете до ситуация, в която няколко ядра използват много бавен достъп до основната RAM. AMD за първи път представи L3 кеш памет на настолен процесор с вече споменатата линия Phenom. 65 nm Phenom X4 съдържа 2 MB споделен L3 кеш, а модерният 45 nm Phenom II X4 вече има 6 MB споделен L3 кеш. Процесорите Intel Core i7 и i5 използват 8 MB L3 кеш памет.

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


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

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

Какво е кеш памет и нейната структура

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

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

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

За какво се използва кеша на процесора?

Както бе споменато по-горе, основната цел на кеш паметта е да съхранява данни, които често се използват от процесора. Кешът е буфер, в който се зареждат данни, и въпреки малкия си размер (около 4-16 MB) в съвременните процесори, той осигурява значително повишаване на производителността във всяко приложение.

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

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

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

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

Нива на кеша на процесора

Съвременните процесори са оборудвани с кеш памет, която често се състои от 2 или 3 нива. Разбира се, има и изключения, но това често е така.

Най-общо може да има следните нива: L1 (първо ниво), L2 (второ ниво), L3 (трето ниво). Сега малко повече подробности за всеки от тях:

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

Ще разгледаме обеми на високопроизводителен процесор Intel Core i7-3770K. Този процесор е оборудван с 4x32 KB L1 кеш памет 4 x 32 KB = 128 KB. (32 KB на ядро)

Кеш от второ ниво (L2) – второто ниво е по-голямо от първото, но в резултат на това има по-ниски „скоростни характеристики“. Съответно той служи като буфер между нивата L1 и L3. Ако погледнем отново нашия пример Core i7-3770 K, тогава размерът на L2 кеш паметта е 4x256 KB = 1 MB.

Кеш от трето ниво (L3) – третото ниво отново е по-бавно от предишните две. Но все още е много по-бърз от RAM. Размерът на L3 кеша в i7-3770K е 8 MB. Ако предишните две нива се споделят от всяко ядро, тогава това ниво е общо за целия процесор. Цифрата е доста солидна, но не прекомерна. Тъй като, например, за процесори от серията Extreme като i7-3960X, той е 15 MB, а за някои нови процесори Xeon повече от 20.

we-it.net

За какво се използва кеш паметта и колко е необходима?

Не говорим за пари, а за кеш памет на процесора и др. Търговците си направиха още един комерсиален фетиш от капацитета на кеш паметта, особено с кеша на централните процесори и твърдите дискове (видеокартите също го имат, но още не са стигнали до него). И така, има XXX процесор с 1 MB L2 кеш и абсолютно същият XYZ процесор с 2 MB кеш. Познайте кой е по-добър? А - не го правете веднага!

Кеш паметта е буфер, който съхранява това, което може и/или трябва да бъде отложено за по-късно. Процесорът върши работа и възникват ситуации, когато междинните данни трябва да се съхраняват някъде. Е, разбира се в кеша! - в края на краищата, той е с порядъци по-бърз от RAM, защото... той е в самата матрица на процесора и обикновено работи на същата честота. След известно време той ще извади тези данни и ще ги обработи отново. Грубо казано, това е като сортировач на картофи на конвейер, който всеки път, когато попадне на нещо различно от картофи (моркови), го хвърля в кутия. И когато се напълни, той става и го отнася в съседната стая. В този момент конвейерът е неподвижен и се наблюдава престой. Обемът на кутията е кешът в тази аналогия. И колко е необходимо - 1 MB или 12? Ясно е, че ако обемът му е малък, ще трябва да отделите твърде много време за премахване и ще бъде просто, но след определен обем по-нататъшното му увеличаване няма да даде нищо. Е, сортировачът ще има кутия за 1000 кг моркови - но няма да има толкова през цялата си смяна и това няма да го направи ДВА ПЪТИ ПО-БЪРЗ! Има още една тънкост - големият кеш може да доведе до увеличаване на забавянето на достъпа до него, първо, и в същото време вероятността от грешки в него се увеличава, например по време на овърклок - второ. (Можете да прочетете КАК да определите стабилността/нестабилността на процесора в този случай и да разберете, че грешката възниква в неговия кеш и да тествате L1 и L2 тук.) Трето, кешът изяжда прилично количество площ на чипа и транзистор бюджет на процесорната схема. Същото важи и за кеш паметта на твърдите дискове. И ако архитектурата на процесора е силна, той ще има кеш от 1024 KB или повече, търсен в много приложения. Ако имате бърз HDD, 16MB или дори 32MB са подходящи. Но никакво количество от 64 MB кеш няма да го направи по-бързо, ако това е трим, наречен зелена версия (Green WD) със скорост 5900 вместо необходимите 7200, дори ако последният има 8MB. Тогава процесорите на Intel и AMD използват този кеш по различен начин (най-общо казано, AMD е по-ефективен и техните процесори често се чувстват комфортно с по-малки стойности). Освен това Intel има споделен кеш, но AMD го има индивидуално за всяко ядро. Най-бързият L1 кеш на AMD процесорите е 64 KB за данни и инструкции, което е два пъти повече от този на Intel. Кешът от трето ниво L3 обикновено присъства в топ процесори като AMD Phenom II 1055T X6 Socket AM3 2.8GHz или конкурента Intel Core i7-980X. На първо място, игрите обичат големи обеми на кеша. И много професионални приложения НЕ обичат кеша (вижте. Компютър за рендиране, редактиране на видео и професионални приложения). По-точно тези, които са най-взискателни, като цяло са безразлични към него. Но това, което определено не трябва да правите, е да изберете процесор въз основа на размера на кеша. Старият Pentium 4 в последните си проявления имаше 2MB кеш при работни честоти доста над 3GHz - сравнете производителността му с евтиния двуядрен Celeron E1***, работещ на честоти около 2GHz. Той няма да остави камък необърнат от стареца. По-уместен пример е високочестотният двуядрен E8600, който струва почти $200 (очевидно поради 6MB кеш) и Athlon II X4-620 2.6GHz, който има само 2MB. Това не пречи на Athlone да нареже своя конкурент на парчета.

Както можете да видите от графиките, нито един кеш не може да замени допълнителните ядра нито в сложни програми, нито в игри, изискващи процесор. Athlon с 2MB кеш (червен) лесно бие Cor2Duo с 6MB кеш, дори при по-ниска честота и почти половината от цената. Също така много хора забравят, че кешът присъства във видеокартите, защото, общо казано, те също имат процесори. Скорошен пример е видеокартата GTX460, където успяват не само да намалят капацитета на шината и паметта (за което купувачът ще се досети), но също така и съответно шейдърния кеш от 512Kb на 384Kb (за което купувачът НЯМА да познае ). И това също ще добави своя отрицателен принос към производителността. Също така ще бъде интересно да разберете зависимостта на производителността от размера на кеша. Нека да разгледаме колко бързо расте с увеличаване на размера на кеша, използвайки примера на същия процесор. Както знаете, процесорите от серията E6***, E4*** и E2*** се различават само по размера на кеша (съответно 4, 2 и 1 MB). Работейки на същата честота от 2400 MHz, те показват следните резултати.

Както можете да видите, резултатите не са твърде различни. Ще кажа нещо повече - ако беше замесен процесор с капацитет 6MB, резултатът щеше да се увеличи още малко, т.к. процесорите достигат насищане. Но при модели с 512Kb спадът би бил осезаем. С други думи, 2MB са достатъчни дори за игри. За да обобщим, можем да направим следния извод - кешът е добър, когато ВЕЧЕ има много от всичко останало. Наивно и глупаво е да променяте скоростта на твърдия диск или броя на процесорните ядра за размера на кеша на една и съща цена, защото дори и най-обемната кутия за сортиране няма да замени друг сортировач, но има и добри примери например Pentium Dual-Core в ранна ревизия на 65 nm процес имаше 1 MB кеш за две ядра (серия E2160 и подобни), а по-късната 45-nm ревизия на серията E5200 все още има 2 MB, при равни други условия ( и най-важното - ЦЕНА). Разбира се, трябва да изберете второто.

compua.com.ua

Какво е кеш, защо е необходим и как работи?

Кое е най-мръсното място на компютъра? Мислите ли, че е кошница? Потребителски папки? Охладителна система? Грешно сте предположили! Най-мръсното място е кеша! В крайна сметка трябва постоянно да го почиствате!

Всъщност има много кешове на компютъра и те служат не като сметище за отпадъци, а като ускорители за оборудване и приложения. Откъде са придобили репутацията на „улей за боклук на системата“? Нека да разберем какво е кеш, какво представлява, как работи и защо трябва да се почиства от време на време.

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

Приложения (уеб браузъри, аудио и видео плейъри, редактори на бази данни и т.н.), компоненти на операционната система (кеш за миниатюри, DNS кеш) и хардуер (кеш на процесора L1-L3, графичен фреймбуфер) имат своя собствена кеш памет, буфери за съхранение). . Реализира се по различни начини – софтуерно и хардуерно.

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

  • В устройствата за съхранение (по-специално твърдите дискове) кешът е отделен RAM чип с капацитет 1-256 Mb, разположен на електронната платка. Той получава информация, прочетена от магнитния слой и все още незаредена в RAM, както и данни, които най-често се изискват от операционната система.

  • Съвременният централен процесор съдържа 2-3 основни нива на кеш памет (наричана още ултра памет с произволен достъп), разположени под формата на хардуерни модули на един и същи чип. Най-бързият и най-малък по размер (32-64 Kb) е кеш ниво 1 (L1) - той работи на същата честота като процесора. L2 заема средна позиция по скорост и капацитет (от 128 Kb до 12 Mb). А L3 е най-бавният и най-обемният (до 40 Mb), като при някои модели го няма. Скоростта на L3 е ниска само спрямо по-бързите му братя, но също така е стотици пъти по-бърза от най-производителната RAM.

Флаш паметта на процесора се използва за съхраняване на постоянно използвани данни, изпомпвани от RAM и инструкции на машинния код. Колкото повече е, толкова по-бърз е процесорът.

Днес три нива на кеширане вече не са ограничението. С появата на архитектурата Sandy Bridge, Intel внедри допълнителен кеш L0 (предназначен за съхраняване на декриптирани микроинструкции) в своите продукти. И най-високопроизводителните процесори също имат кеш от четвърто ниво, направен под формата на отделен чип.

Схематично взаимодействието на кеш нивата L0-L3 изглежда така (използвайки примера на Intel Xeon):

На човешки език за това как работи всичко

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

Хартиите, от които се нуждае по-рядко, се съхраняват наблизо на рафтове (в RAM). За да ги получите, трябва да се изправите и да изминете няколко метра. И това, с което човек в момента не работи, се архивира (записва се на харда).

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

Понякога прави грешки – държи на бюрото си документи с невярна информация и ги използва в работата си. В резултат на това качеството на работата му намалява (грешките в кеша водят до неизправности на програмите и хардуера). За да коригира ситуацията, служителят трябва да изхвърли документи с грешки и да постави правилните на тяхно място (изчистете кеш паметта).

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

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

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

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

Всъщност срещаме „кеширащи функции“ навсякъде. Това включва закупуване на хранителни стоки за бъдещи нужди, както и различни действия, които извършваме мимоходом, по едно и също време и т.н. По същество това е всичко, което ни спасява от ненужна суета и ненужни движения, рационализира живота ни и улеснява работата ни. Компютърът прави същото. Накратко, ако нямаше кеш, щеше да работи стотици и хиляди пъти по-бавно. И вероятно няма да ни хареса.

f1comp.ru

Кеш, кеш, кеш - памет. За какво се използва кеш паметта? Влияние на размера и скоростта на кеша върху производителността.

Кеш - памет (cache, cash, buffer - англ.) - използва се в цифровите устройства като високоскоростен клипборд. Кеш паметта може да се намери на компютърни устройства като твърди дискове, процесори, видео карти, мрежови карти, CD устройства и много други.

Принципът на работа и архитектурата на кеша могат да варират значително.

Например кешът може да служи като обикновен клипборд. Устройството обработва данните и ги прехвърля към високоскоростен буфер, където контролерът предава данните към интерфейса. Такъв кеш има за цел да предотвратява грешки, да проверява целостта на данните за хардуера или да кодира сигнал от устройство в разбираем сигнал за интерфейса, без забавяне. Тази система се използва например в CD/DVD устройства.

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


Тази архитектура най-често се среща на твърди дискове, SSD устройства и централни процесори (CPU).

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

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

Има няколко много важни функции, реализирани за кеша на процесорите и видеочиповете.

Комбиниране на изпълнителни единици. Централните процесори и видео процесорите често използват бърз споделен кеш между ядрата. Съответно, ако едно ядро ​​е обработило информация и тя е в кеша и се получи команда за същата операция или за работа с тези данни, тогава данните няма да бъдат обработени отново от процесора, а ще бъдат взети от кеш за по-нататъшна обработка. Ядрото ще бъде разтоварено, за да обработи други данни. Това значително повишава производителността при подобни, но сложни изчисления, особено ако кешът е голям и бърз.

Споделеният кеш също позволява на ядрата да работят директно с него, заобикаляйки бавната RAM памет.

Кеширайте за инструкции. Има или споделен, много бърз L1 кеш за инструкции и други операции, или специален кеш за тях. Колкото повече инструкции се съхраняват в един процесор, толкова по-голям кеш за инструкции се изисква. Това намалява латентността на паметта и позволява на блока с инструкции да функционира почти независимо. Когато е пълен, блокът с инструкции започва периодично да не се използва, което забавя скоростта на изчисление.

Други функции и характеристики.

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

В CPU и GPU има йерархия на кеша, която ви позволява да разделяте данните за отделните ядра и общите. Въпреки че почти всички данни от кеша от второ ниво все още се копират на третото, общо ниво, но не винаги. Първото ниво на кеша е най-бързо, а всяко следващо е по-бавно, но с по-голям размер.

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

Размер на кеша, влияние върху производителността и други характеристики.

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

Големият кеш означава голям транзисторен бюджет. В сървърните процесори (CPU) кешът може да използва до 80% от транзисторния бюджет. Първо, това се отразява на крайната цена, и второ, потреблението на енергия и разсейването на топлината се увеличават, което не е сравнимо с повишената с няколко процента производителност.