Пам'ять, як апаратний пристрій

Пам'ять, як апаратний пристрій

Будь-яка процесорна (мікроконтролерна) система влаштована, в общем-то, однаково. Існує пристрій, який називається "процесор", яке вміє в найзагальнішому сенсі "переробляти інформацію" - отримуючи на вхід інформацію одну, на виході воно створює інформацію іншу. Природно, цілком детерміновану - алгоритм цього самого перетворення описується "програмою". Але для нас зараз це не важливо, зараз нас цікавить відповідь тільки на одне питання - як саме "процесор" обмінюється з "зовнішнім світом". І принцип на якому це взаємодія побудовано коротко іменується "архітектура загальна шина". Він зображений на рис.1, на якому показано три пристрої - процесор і два ОЗУ:

рис 1. Схема архітектури "загальна шина"

рис 2. Принципова схема організації ОЗУ

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

Тому загальна схема програмно-апаратного механізму, що забезпечує описаним способом створення ілюзії наявності більшої оперативної пам'яті, ніж є насправді, наведена на рис. 4:

рис 4. Загальна схема механізму віртуальної пам'яті

Ще раз повторимо - сказане вище є лише близька до реального втілення в існуючих процесорах принципова схема. Більш докладний і точне знання про те, як функціонує позначений механізм потрібно трохи програмістам, а вони його знають і так. Для нас, звичайних програмістів, сказане - лише необхідна підстава для того, щоб перейти до власне предмету даної статті - як влаштовано в операційній системі використання описаних апаратних можливостей і що воно дає програмісту, котрі використовують, наприклад, платформу Win32.