Різниця між кеш-пам’яттю та віртуальною пам’яттю

Кеш-пам'ять проти віртуальної пам'яті
 

Різниця між кеш-пам’яттю і віртуальною пам’яттю існує в цілях, для використання яких ці два, і в фізичному існуванні. Кеш-пам'ять - це тип пам'яті, який використовується для покращення часу доступу до основної пам'яті. Він знаходиться між процесором і основною пам'яттю, і там може бути кілька рівнів кешів, таких як L1, L2 і L3. Тип апаратного забезпечення, що використовується для кеш-пам'яті, значно дорожчий, ніж оперативна пам'ять (Random Access Memory), яка використовується для основної пам'яті, оскільки кеш-пам'ять набагато швидша. З цієї причини ємність кеш-пам'яті дуже мала. Віртуальна пам'ять - це технологія управління пам’яттю, яка використовується для ефективного використання оперативної пам’яті (основної пам’яті), забезпечуючи окремий простір пам’яті для кожної програми, який навіть більший, ніж реальна фізична ємність (основна пам’ять). Тут жорсткий диск використовується для розширення пам'яті. Елементи фізичної оперативної пам’яті передаються туди-назад за допомогою жорсткого диска.

Що таке кеш-пам'ять?

Кеш-пам'ять - це тип пам’яті що лежить між процесором (центральним процесорним блоком) та оперативною пам'яттю (оперативною пам'яттю). Мета кеш-пам'яті - скоротити час доступу до пам'яті ЦП з ОЗУ. Кеш-пам'ять набагато швидша, ніж оперативна пам'ять. Тому час доступу до кешу набагато менший, ніж час доступу в оперативній пам'яті. Але вартість пам'яті, що використовується для кеш-пам’яті, значно вища, ніж вартість пам’яті, що використовується для оперативної пам’яті, а значить, ємність кеш-пам’яті дуже мала. Тип пам'яті, що використовується для кеш-пам'яті, називається SRAM (статична пам'ять з випадковим доступом).

Щоразу, коли процесор хоче отримати доступ до пам’яті, він спочатку перевіряє, чи потрібне воно знаходиться в кеш-пам'яті. Якщо так, то можна було б отримати доступ до нього з найменшою затримкою. Якщо він не знаходиться в кеші, запитуваний вміст буде скопійовано з оперативної пам’яті в кеш, і тоді лише керований процесор отримає доступ до нього з кеша. Тут при копіюванні вмісту з кешу не тільки вміст запитуваної адреси пам'яті, але й вміст, що знаходиться поруч, копіюється в кеш. Отже, наступного разу є велика ймовірність того, що трапляється кеш-пам'ять, оскільки більшість комп'ютерних програм отримують доступ до даних, що перебувають поблизу, або більшість разів отримують доступ до даних. Так завдяки кешу зменшується середня затримка пам’яті.

У процесорі є три типи кешів: Кеш інструкцій для зберігання програмних інструкцій, Кеш даних для зберігання елементів даних та Буфер для перекладу для зберігання відображень пам'яті. Для кешу даних, як правило, є багаторівневі кеші. Тобто є кілька кешів, як L1, L2 і L3. Кеш L1 - це найшвидший, але найменший кеш-пам'ять, найближчий до процесора. Кеш L2 повільніше, ніж L1, але більший за L1 і знаходиться після кешу L1. Завдяки цій ієрархії можна досягти кращого середнього часу доступу до пам’яті за менших витрат.

Що таке віртуальна пам'ять?

Віртуальна пам'ять - це техніка управління пам’яттю використовується в комп'ютерних системах. Немає апаратного забезпечення під назвою віртуальна пам'ять, але це концепція, яка використовує оперативну пам’ять та жорсткий диск для забезпечення віртуального адресного простору для програм. Спочатку оперативна пам'ять поділяється на шматки, що називаються сторінками, і вони ідентифікуються за адресами фізичної пам'яті. На жорсткому диску спеціальна частина зарезервована, де в Linux вона називається свопом, а в Windows - файлом сторінки. Коли програма запускається, їй надається віртуальний адресний простір, який може бути навіть більшим, ніж фактична фізична пам'ять. Простір віртуальної пам’яті також розділений на шматки, що називаються сторінками, і кожна з цієї сторінки віртуальної пам’яті може бути відображена на фізичну сторінку. Таблиця з назвою таблиці сторінок відстежує це відображення. Коли у фізичної пам'яті не вистачає місця, те, що робиться, певні фізичні сторінки висуваються на цю спеціальну частину на жорсткому диску. Коли будь-яка сторінка, натиснута на жорсткий диск, знову потрібна, вона підводиться до фізичної пам'яті, додаючи іншу обрану сторінку з фізичної пам'яті на жорсткий диск.

Яка різниця між кеш-пам’яттю та віртуальною пам’яттю?

• Кеш-пам'ять - це тип пам'яті, який використовується для поліпшення часу доступу до основної пам'яті. Це більш швидкий тип пам'яті, який знаходиться між процесором і оперативною пам'яттю, щоб зменшити середню затримку доступу до пам'яті. Віртуальна пам'ять - це метод управління пам'яттю, коли це концепція, яка дозволяє програмам отримувати власний простір віртуальної пам'яті, який навіть більший, ніж реальна фізична ОЗУ.

• Кеш-пам'ять - це тип апаратної пам'яті, який фактично існує фізично. З іншого боку, не існує апаратного забезпечення під назвою віртуальна пам'ять, оскільки це концепція, яка використовує оперативну пам'ять, жорсткий диск, блок управління пам'яттю та програмне забезпечення для забезпечення віртуального типу пам'яті.

• Кеш-пам’ять керування повністю здійснюється апаратним забезпеченням. Віртуальна пам'ять управляється операційною системою (програмне забезпечення).

• Кеш-пам'ять лежить між оперативною пам’яттю та процесором. Передача даних передбачає оперативну пам'ять, кеш-пам’ять та процесор. З іншого боку, віртуальна пам'ять передбачає передачу даних між оперативною пам'яттю та жорстким диском.

• Кеш-пам'ять займає невеликі розміри, такі як кілобайти та мегабайти. З іншого боку, віртуальна пам'ять включає величезні розміри, які займають гігабайти.

• Віртуальна пам'ять включає структури даних, такі як таблиці сторінок, які зберігають відображення між фізичною пам'яттю та віртуальною пам'яттю. Але цей тип структур даних не потрібний для кеш-пам'яті.

Підсумок:

Кеш-пам'ять проти віртуальної пам'яті

Кеш-пам'ять використовується для поліпшення часу доступу до основної пам'яті, а віртуальна пам'ять - метод управління пам'яттю. Кеш-пам'ять - це фактичне обладнання, але не існує апаратного забезпечення, яке називається віртуальною пам'яттю. Оперативна пам’ять, жорсткий диск та інше обладнання в сукупності з операційною системою виробляє концепцію під назвою віртуальна пам'ять для забезпечення великих та ізольованих просторів віртуальної пам'яті для кожної програми. Вмістом у кеш-пам'яті керує апаратне забезпечення, тоді як вмістом у віртуальній пам'яті керує операційна система.

Надано зображення:

  1. Процес кеш-пам'яті від Hellisp (CC BY-SA 3.0)
  2. Віртуальна пам'ять від Ehamberg (CC BY-SA 3.0)