Кеш памет срещу виртуална памет
Разликата между кеш паметта и виртуалната памет съществува в целта, за която се използват тези две, и във физическото съществуване. Кеш паметта е вид памет, използвана за подобряване на времето за достъп на основната памет. Той се намира между процесора и основната памет и може да има няколко нива на кеш памет като L1, L2 и L3. Типът хардуер, използван за кеш памет, е много по-скъп от RAM (памет с произволен достъп), използван за основната памет, тъй като кеш паметта е много по-бърза. Поради тази причина капацитетът на кеш паметта е много малък. Виртуалната памет е техника за управление на паметта, използвана за ефективно използване на RAM (основна памет), като същевременно осигурява отделно пространство за памет за всяка програма, което е дори по-голямо от действителния капацитет на физическата RAM (основна памет). Тук твърдият диск се използва за разширяване на паметта. Елементите във физическата RAM се прехвърлят напред и назад с твърдия диск.
Какво е кеш памет?
Кеш паметта е вид памет, която се намира между процесора (централен процесор) и RAM (паметта с произволен достъп). Целта на кеш паметта е да намали времето за достъп до паметта на процесора от RAM. Кеш паметта е много по-бърза от RAM. Така че времето за достъп в кеша е много по-малко от времето за достъп в RAM. Но цената на паметта, използвана за кеш памет, е много по-висока от цената на паметта, използвана за RAM, и следователно капацитетът на кеш паметта е много малък. Типът памет, използвана за кеш памет, се нарича SRAM (Static Random Access Memory).
Винаги, когато CPU иска достъп до паметта, първо проверява дали това, от което се нуждае, се намира в кеш паметта. Ако отговорът е да, той ще има достъп до него с най-малко латентност. Ако не се намира в кеш паметта, заявеното съдържание ще бъде копирано от RAM в кеша и тогава само процесорът ще има достъп до него от кеша. Тук, когато копирате съдържание от кеша, в кеша се копира не само съдържанието в искания адрес на паметта, но и близкото съдържание. Така че, следващият път, когато има голяма вероятност да се случи хит в кеш паметта, тъй като повечето компютърни програми получават достъп до близките данни или последните данни за достъп през повечето време. Така че поради кеша средната латентност на паметта е намалена.
В процесора има три вида кешове: Кеш с инструкции за съхраняване на програмни инструкции, Кеш за данни за съхраняване на елементи от данни и Буфер за преглед на превода за съхраняване на съпоставяния на паметта. За кеша на данни обикновено има кеши на няколко нива. Тоест има няколко кеша като L1, L2 и L3. L1 кешът е най-бързата, но най-малката кеш памет, която е най-близо до процесора. L2 кешът е по-бавен от L1, но е по-голям от L1 и се намира след кеша L1. Поради тази йерархия може да се постигне по-добро средно време за достъп до паметта на по-ниска цена.
Какво е виртуална памет?
Виртуалната памет е техника за управление на паметта, използвана в компютърните системи. Няма хардуер, наречен виртуална памет, но това е концепция, която използва RAM и твърдия диск, за да осигури виртуално адресно пространство за програми. Първо RAM се разделя на парчета, наречени страници и те се идентифицират по физически адреси на паметта. В твърдия диск е запазена специална част, където в Linux това се нарича суап, а в Windows - файл на страницата. Когато програмата се стартира, тя получава виртуално адресно пространство, което може да бъде дори по-голямо от действителната физическа памет. Пространството на виртуалната памет също е разделено на парчета, наречени страници и всяка от тази страница на виртуална памет може да бъде преобразувана във физическа страница. Таблицата, наречена таблица на страниците, следи това картографиране. Когато физическата памет свърши, това, което се прави е,определени физически страници се избутват към тази специална част на твърдия диск. Когато някоя страница, изпратена на твърдия диск, е необходима отново, тя се пренася във физическата памет, като поставя друга избрана страница от физическата памет на твърдия диск.
Каква е разликата между кеш паметта и виртуалната памет?
• Кеш паметта е вид памет, използвана за подобряване на времето за достъп на основната памет. Това е по-бърз тип памет, която се намира между процесора и RAM, за да намали средното забавяне на достъпа до паметта. Виртуалната памет е метод за управление на паметта, при който това е концепция, която позволява на програмите да получат собствено пространство за виртуална памет, което е дори по-голямо от реалната налична физическа RAM.
• Кеш паметта е вид хардуерна памет, която действително съществува физически. От друга страна, няма хардуер, наречен виртуална памет, тъй като това е концепция, която използва RAM, твърд диск, устройство за управление на паметта и софтуер, за да осигури виртуален тип памет.
• Управлението на кеш паметта се извършва изцяло от хардуер. Виртуалната памет се управлява от операционната система (софтуер).
• Кеш паметта се намира между RAM и процесора. Прехвърлянето на данни включва RAM, кеш памет и процесора. Виртуалната памет, от друга страна, включва трансфер на данни между RAM и твърдия диск.
• Кеш паметта отнема малки размери като килобайт и мегабайт. Виртуалната памет, от друга страна, включва огромни размери, които отнемат гигабайта.
• Виртуалната памет включва структури от данни като таблици на страници, които съхраняват картографиране между физическа памет и виртуална памет. Но този тип структури от данни не е необходим за кеш паметта.
Резюме:
Кеш памет срещу виртуална памет
Кеш паметта се използва за подобряване на времето за достъп на основната памет, докато виртуалната памет е метод за управление на паметта. Кеш паметта е действителен хардуер, но няма хардуер, наречен виртуална памет. RAM, твърд диск и различен друг хардуер заедно с операционната система създават концепцията, наречена виртуална памет, за да предоставят големи и изолирани пространства за виртуална памет на всяка програма. Съдържанието в кеш паметта се управлява от хардуер, докато съдържанието във виртуалната памет се управлява от операционната система.
Снимките са предоставени:
- Процес на кеш памет от Hellisp (CC BY-SA 3.0)
- Виртуална памет от Ehamberg (CC BY-SA 3.0)